作者:初次知晓
邮箱:lr_1052107892@outlook.com
笔记分享:百度网盘分享链接
百度云盘链接:https://pan.baidu.com/s/1VXHLlMsRvrzcY0d6W0LPsA?pwd=b8m1
提取码:b8m1
本人为中职在读学生,博客内容或有错误,我愿意接受并吸取任何人的意见
学习来源参考以下网站或视频:菜鸟教程,千锋教育系列视频,黑马程序员系列视频
文件操作
保存文件
save:保存数组至一个npy文件中
savez:将多个array保存到一个npz文件中
语法:numpy.save(文件名,数组)
x = np.arange(1,11)
np.save('x',x)
语法:numpy.savez()
x = np.arange(1,11)
y = np.arange(-10,0)
np.savez('arr',xarr=x,yarr=y)
xarr和yarr是保存在arr文件中的一个键(key)
调用这个npz文件的对应数据时,需要用到
如果是要存到txt或csv文件,应该使用:save文件后缀名修改
如: np.savetxt('x.txt',x)
如果是csv文件,还需设置分隔符:np.savetxt('x.csv',x,delimiter=',')
读取文件
语法:接收变量 = numpy.load(文件名)[键名]
z = np.load('x.npy')
print(z)
[ 1 2 3 4 5 6 7 8 9 10]
如果是读取npz文件
z = np.load('arr.npz')
print(z)
<numpy.lib.npyio.NpzFile object at 0x000001ED120078B0>
是一段乱码,如何解决呢?
在保存npz文件时,我们写了两个键值对应数组,引用这个键即可
z1 = np.load('arr.npz')['xarr']
z2 = np.load('arr.npz')['yarr']
print(z1)
print(z2)
[ 1 2 3 4 5 6 7 8 9 10]
[-10 -9 -8 -7 -6 -5 -4 -3 -2 -1]
如果是读取txt文件或者vsc文件,也需要使用loadtxt
且读取csv文件时也需要设置分隔符和数据类型
z = np.loadtxt('x.csv',delimiter=',',dtype=np.int16)
print(z)
[ 1 2 3 4 5 6 7 8 9 10]
z = np.loadtxt('x.txt',dtype=np.int16)
print(z)
[ 1 2 3 4 5 6 7 8 9 10]
排序操作
语法:
numpy.sort(数组):不改变原数组
ndarray.sort(数组):改变原数组,不多占用空间
n1 = np.random.randint(10,size=10)
print(n1)
[6 0 3 3 5 0 1 3 9 5]
print(np.sort(n1))
[0 0 1 3 3 3 5 5 6 9]
np.ndarray.sort(n1)
print(n1)
[0 0 1 3 3 3 5 5 6 9]
常用数学函数
求绝对值:numpy.abs(数组)
求平方根:numpy.sqrt(数组)
求平方: numpy.square(数组)
求指数(以e为底):numpy.exp(数组)
求对数(自然对数):numpy.log(数组)
numpy.log2(数组)、numpy.log10(数组) #以二为底,以十为低
求正弦:numpy.sin(数组)
求余弦:numpy.cos(数组)
求正切:numpy.tan(数组)
求四舍五入值:numpy.round(数组,几位小数)
向上取整:numpy.ceil(数组)
向下取整:numpy.floor(数组)
累加运算:numpy.cumsum(数组) 前n项的和(第二项是前两位数的和)
数组的级联
级联:合并多个数组
语法:接收变量 = numpy.concatenate((数组1,数组2,…,数组n),axis=None)
级联的数组维度必须相同
axis表示级联的方向默认上下级联(如果是横向,行必须相同。纵向,列必须相同)
axis = 0,表示纵向(上下)级联
axis = 1,表示横向(左右)级联
例子:
a = np.arange(1,11)
b = np.arange(11,21)
[ 1 2 3 4 5 6 7 8 9 10]
[11 12 13 14 15 16 17 18 19 20]
c = np.concatenate((a,b))
print(c)
[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]
水平级联:左右合并
语法:numpy.hstack((数组1,数组2,…,数组n))
垂直级联:上下合并
语法:numpy.vstack((数组1,数组2,…,数组n))
数组的切分/拆分/分割
语法:接收变量 = numpy.split(数组,几份(或者 按照指定位置),axis=None) #拆分
axis = 0 按行拆
axis = 1 按列拆
接收变量 = numpy.vsplit(数组,几份(或者 按照指定位置)) #按行拆分(拆成几行..几行)
接收变量 = numpy.hsplit(数组,几份(或者 按照指定位置)) #按列拆分(拆成几列…几列)
a = np.arange(1,11)
b = np.arange(11,21)
c = np.concatenate((a,b))
[[ 1 2 3 4 5]
[ 6 7 8 9 10]
[11 12 13 14 15]
[16 17 18 19 20]]
例子:d = np.split(c,2)
print(d)
[array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10]]),
array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20]])]
数组的副本/复制/拷贝
将一个数组的内容复制给另一个数组
语法: 接收变量 = 数组.copy()
n1 = np.arange(10)
n2 = n1.copy()
print(n1,n2)
[0 1 2 3 4 5 6 7 8 9] [0 1 2 3 4 5 6 7 8 9]