机器学习Numpy操作

如果你跟现在一样在学习机器学习,但是对于代码里的numpy、pandas和matplotlib不是很熟悉,那么你可以接着往下看。这里是我在学习过程中对numpy、pandas和matplotlib的常用操作,最后附有原码。我是参考了博主"CV干饭王"师哥的博客,若有侵权,立刻删。

一、Numpy部分
1、创建数组

#首先导入numpy包
import numpy as np
# 生成两行三列的数组,使用ones,zeros,empty
data1 = np.ones(shape=[2,3]) # ones就是全都生成1
data = data1.astype(np.int32) # 将浮点型改为int型
print(data,data.shape,data.dtype)

data2 = np.zeros(shape=[2,3])
print(data2,data2.shape,data2.dtype)

data3 = np.empty(shape=[3,4]) # 随机生成
print(data3,data3.shape,data3.dtype)

结果如下:
在这里插入图片描述

# 使用linspace,arange生成数组
data4 = np.linspace(0,10,5) # [0,10]中,等距分成5段
print(data4)

data5 = np.arange(0,10,3)# 左闭右开,步长为3
print(data5)

结果如下:
在这里插入图片描述

# 在(0,1)区间内,生成维度为[4,6]的数组
data6 = np.random.normal(0,1,size=(4,6))
print(data6)

# 在(-1,1)见生成10个均匀分布的数,
data7 = np.random.uniform(-1,1,10)
print(data7)

# 正态分布
data8 = np.random.normal(1.8,0.1,100) # 参数分布是 对称轴,标准差,个数
print(data8)

结果如下:
在这里插入图片描述
整体代码:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project :LeastSquearMethod.py 
@File    :01_numpy.py
@IDE     :PyCharm 
@Author  :Kandy凯
@Date    :2022/7/13 16:32 
'''
"""
1、使用ones,zeros,empty创建数组
2、使用linspace,arange生成数组
3、在(0,1)区间内,生成维度为[4,6]的数组
4、在(-1,1)见生成10个均匀分布的数,
5、在(0,1)区间内,生成维度为[4,6]的数组
"""
import numpy as np

# 1、创建数组

# 生成两行三列的数组,使用ones,zeros,empty
data1 = np.ones(shape=[2,3]) # ones就是全都生成1
data = data1.astype(np.int32) # 将浮点型改为int型
print(data,data.shape,data.dtype)

data2 = np.zeros(shape=[2,3])
print(data2,data2.shape,data2.dtype)

data3 = np.empty(shape=[3,4]) # 随机生成
print(data3,data3.shape,data3.dtype)

# 使用linspace,arange生成数组
data4 = np.linspace(0,10,5) # [0,10]中,等距分成5段
print(data4)

data5 = np.arange(0,10,3)# 左闭右开,步长为3
print(data5)

# 在(0,1)区间内,生成维度为[4,6]的数组
data6 = np.random.normal(0,1,size=(4,6))
print(data6)

# 在(-1,1)见生成10个均匀分布的数,
data7 = np.random.uniform(-1,1,10)
print(data7)

# 正态分布
data8 = np.random.normal(1.8,0.1,100) # 参数分布是 对称轴,标准差,个数
print(data8)

2、访问数据

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project :LeastSquearMethod.py 
@File    :02_numpy.py
@IDE     :PyCharm 
@Author  :Kandy凯
@Date    :2022/7/13 16:58 
'''

"""
访问数据
1、取第一行数据
2、取第二列数据
3、取第1,2,3行,2,3列数据
"""
import numpy as np
data = np.empty(shape=[4,3])
print(data)

# 取第一行数据
data_one_row = data[0,:]
print(data_one_row)

# 取第二列数据
date_two_col = data[:,1]
print(date_two_col)

# 访问第1,2,3行,2,3列数据
datas = data[0:3,1:3]
print(datas)

3、numpy、Tensor、torch之间的互相转换
(如果你没有涉及到Tensor和torch可以先不用管,后面用到的时候再来)

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project :LeastSquearMethod.py 
@File    :03_numpy.py
@IDE     :PyCharm 
@Author  :Kandy凯
@Date    :2022/7/13 17:11 
'''
"""
numpy、Tensor、torch之间的互相转换
"""
import numpy as np
import tensorflow as tf
import torch
# numpy和Tensor互转
arr = np.empty([3,4])
print(arr)

# numpy --> Tensor
tf_arr = tf.convert_to_tensor(arr)
print(tf_arr)
# Tensor --> numpy
arr = tf_arr.eval()
# numpy --> torch
torch_arr = torch.from_numpy(arr)
# torch --> numpy
arr = torch_arr.numpy()

4、list和numpy之间的相互转换

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project :LeastSquearMethod.py 
@File    :04_numpy.py
@IDE     :PyCharm 
@Author  :Kandy凯
@Date    :2022/7/13 17:20 
'''

"""
list和numpy之间的相互转换
"""
import numpy as np

# numpy和list互相转换
list1 = [[1,2],
         [3,4],
         [5,6]]
# list --> numpy
arr = np.array(list1)
print(list1)# [[1, 2], [3, 4], [5, 6]]
print(arr) # [[1 2]
           # [3 4]
           # [5 6]]
# numpy --> list
list = arr.tolist()
print(list) #[[1, 2], [3, 4], [5, 6]]
print(arr) # [[1 2]
           # [3 4]
           # [5 6]]

5、维度变换,reshape,resize,flatten,ravel

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project :LeastSquearMethod.py 
@File    :05_numpy.py
@IDE     :PyCharm 
@Author  :Kandy凯
@Date    :2022/7/13 17:33 
'''
"""
维度变换,reshape,resize,flatten,ravel
"""
import numpy as np
data6 = np.random.normal(0,1,size=(4,6))
print(data6) # (4,6)

# reshape有返回值,返回一个新数组,总数不变,按照原来的顺序重新分组,维度变为(6,4)
data7 = data6.reshape((6,4))
print(data7)

# reszie无返回值,直接改变原数组
print(data6.shape) # (4,6)
data6.resize((6,4))
print(data6.shape) # (6,4)

# 拉平变换
data8 = np.random.normal(0,1,size=(4,6))
# flatten()有返回值,将数组变为一维的
print(data8.shape) # (4, 6)
data9 = data8.flatten()
print(data9.shape) #(24,)是一个一维数组

# ravel()
print(data8.shape)
data10 = data8.ravel()
print(data10.shape) # (24,)
"""
我查了一下这个ravel()的作用和flatten()作用是一样的,
都是将多维数组变为一维的,并且都有返回值(我看的有的
博主说没有返回值,但我测试了一下好像是有的,如果有错,
还望指正,相互学习嘛),但是尽量使用flatten(),因为
flatten()完全不会影响到原数组,完全是独立空间中返回
一个新的数组(如果有错还望指正),上述只表示自己目前
学习到的观点
"""

最后声明一下,首先我也是一个初学者,这个也是我参考的其他博主的,如果有说的不对的地方,还请各位多多指教。分享这个的目的:① 为了自己学习的需要 ② 帮助更多像我现在一样学机器学习懵逼的研0学生
谢谢参考!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值