numpy函数
作者: fbk
使用arrange生成数组
在arrange生成数组可以进行type类型的zh
import numpy as np
array_2d=np.array([[1,2,3],[4,5,6]],dtype=np.int16)
print(array_2d)
array_3D=np.array([[[1,2,3],[3,4,5]]])
print(array_3D)
print("检测维度",array_3D.ndim)
使用np.arange
arrange生成的所有数都储存在一个数组中,因为数组的类型必须都是统一的,所以在整数numpy也将他化成浮点数,这样就提高了速度
arr=np.arange(0,100,2.5)
print(arr)
print(arr[0].dtype)
shape
shape如果返回两个参数表示是几行几列,如果返回三个数值就是三维数组,第一个参数是几个二维数组,第二个是二维数组的行数,第三个参数是二维数组的列数
print(array_3D.shape)
可以看到原酸结果就是一个二位数字,二维数组的行数和列数
reshape
只要是行数和列数进行相乘,然后得到的结果和size相同就可以
print(arr.size)
arr_2d=arr.reshape(5,8)
print(arr_2d)
初始化数组
如果是初始化的数组默认值为0,可以使用zeros,如果是1,使用ones,方法的形参就是shape形状
zeros=np.zeros(5)
ones=np.ones((3,5))
print(zeros)
print(ones)
可以看到原酸结果就是一个二位数字,二维数组的行数和列数
reshape
只要是行数和列数进行相乘,然后得到的结果和size相同就可以
print(arr.size)
arr_2d=arr.reshape(5,8)
print(arr_2d)
初始化数组
如果是初始化的数组默认值为0,可以使用zeros,如果是1,使用ones,方法的形参就是shape形状
zeros=np.zeros(5)
ones=np.ones((3,5))
print(zeros)
print(ones)
array
使用array可以生成数组
row_students=[1,2,3,4,5,6]
row_math=[66,34,88,96,57,70]
row_English=[58,22,100,49,65,34]
row_Sport=[88,94,38,29,20,80]
student=np.array([row_students,row_math,row_English,row_Sport])
print(student)
print(student[1:,3])
print(student.shape)
可以看到原酸结果就是一个二位数字,二维数组的行数和列数
reshape
只要是行数和列数进行相乘,然后得到的结果和size相同就可以
print(arr.size)
arr_2d=arr.reshape(5,8)
print(arr_2d)
初始化数组
如果是初始化的数组默认值为0,可以使用zeros,如果是1,使用ones,方法的形参就是shape形状
zeros=np.zeros(5)
ones=np.ones((3,5))
print(zeros)
print(ones)
array
使用array可以生成数组
row_students=[1,2,3,4,5,6]
row_math=[66,34,88,96,57,70]
row_English=[58,22,100,49,65,34]
row_Sport=[88,94,38,29,20,80]
student=np.array([row_students,row_math,row_English,row_Sport])
print(student)
print(student[1:,3])
print(student.shape)
在读取的时候可以根据行和列读取,上述就是从第二行第四列读取到最后
读取1,3,5行数
print(student[:,::2])
根据条件读取np中的数据
根据np.where使用条件筛选
mask=(student>=60)&(student<90)
print(np.where(mask,student,np.nan))
使用这个条件就可以进行替换并且选出条件数值
argwhere
可以显示符合数据的索引
print(np.argwhere(mask))
广播
eye=np.eye(5)
print(eye)
print(eye+np.array([0.1,0.2,0.3,0.4,0.5]))
print(eye+np.array([[10],[20],[30],[40],[50]]))
查看横轴或者纵轴的最大值
axis=0查看纵轴最大值,axis=1查看横轴最大值
三维数组当axis=0是每个二维数组进行逐个对比,axis=1是在每个二维数组的纵轴进行比较,然后选出最大值,最后进行比较,axis=2是在横轴进行对比
print(student.max(axis=0))
随机生成数组
arr2=np.random.randint(1,10,size=(3,2,3))
print(arr2)
创建平均数组
创建一个从0,5平均分成10分
arr3=np.linspace(0,5,10)
print(arr3)
拷贝
使用view生成的是浅拷贝内容 使用copy生成的是一个新的数组
arr4=student.view()
print(arr4)
arr_copy=arr3.copy()
print(arr_copy)
数组的去重和合并
使用unique可以进去重 使用concatenate进行合并 使用delete进行删除 使用insert在特定位置进行插入数组
arr5=np.array([1,2,2,31,1,2,3])
print(arr5)
print(np.unique(arr5))
arr_demo=np.array([100,200])
print(np.concatenate(arr5,arr_demo)
可以看到原酸结果就是一个二位数字,二维数组的行数和列数
reshape
只要是行数和列数进行相乘,然后得到的结果和size相同就可以
print(arr.size)
arr_2d=arr.reshape(5,8)
print(arr_2d)
40
[[ 0. 2.5 5. 7.5 10. 12.5 15. 17.5]
[20. 22.5 25. 27.5 30. 32.5 35. 37.5]
[40. 42.5 45. 47.5 50. 52.5 55. 57.5]
[60. 62.5 65. 67.5 70. 72.5 75. 77.5]
[80. 82.5 85. 87.5 90. 92.5 95. 97.5]]
初始化数组
如果是初始化的数组默认值为0,可以使用zeros,如果是1,使用ones,方法的形参就是shape形状
zeros=np.zeros(5)
ones=np.ones((3,5))
print(zeros)
print(ones)
[0. 0. 0. 0. 0.]
[[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]]
array
使用array可以生成数组
row_students=[1,2,3,4,5,6]
row_math=[66,34,88,96,57,70]
row_English=[58,22,100,49,65,34]
row_Sport=[88,94,38,29,20,80]
student=np.array([row_students,row_math,row_English,row_Sport])
print(student)
print(student[1:,3])
print(student.shape)
[[ 1 2 3 4 5 6]
[ 66 34 88 96 57 70]
[ 58 22 100 49 65 34]
[ 88 94 38 29 20 80]]
[96 49 29]
(4, 6)
在读取的时候可以根据行和列读取,上述就是从第二行第四列读取到最后
读取1,3,5行数
print(student[:,::2])
[[ 1 3 5]
[ 66 88 57]
[ 58 100 65]
[ 88 38 20]]
根据条件读取np中的数据
根据np.where使用条件筛选
mask=(student>=60)&(student<90)
print(np.where(mask,student,np.nan))
[[nan nan nan nan nan nan]
[66. nan 88. nan nan 70.]
[nan nan nan nan 65. nan]
[88. nan nan nan nan 80.]]
使用这个条件就可以进行替换并且选出条件数值
argwhere
可以显示符合数据的索引
print(np.argwhere(mask))
[[1 0]
[1 2]
[1 5]
[2 4]
[3 0]
[3 5]]
广播
eye=np.eye(5)
print(eye)
[[1. 0. 0. 0. 0.]
[0. 1. 0. 0. 0.]
[0. 0. 1. 0. 0.]
[0. 0. 0. 1. 0.]
[0. 0. 0. 0. 1.]]
print(eye+np.array([0.1,0.2,0.3,0.4,0.5]))
print(eye+np.array([[10],[20],[30],[40],[50]]))
[[11. 10. 10. 10. 10.]
[20. 21. 20. 20. 20.]
[30. 30. 31. 30. 30.]
[40. 40. 40. 41. 40.]
[50. 50. 50. 50. 51.]]
查看横轴或者纵轴的最大值
axis=0查看纵轴最大值,axis=1查看横轴最大值
三维数组当axis=0是每个二维数组进行逐个对比,axis=1是在每个二维数组的纵轴进行比较,然后选出最大值,最后进行比较,axis=2是在横轴进行对比
print(student.max(axis=0))
[ 88 94 100 96 65 80]
随机生成数组
arr2=np.random.randint(1,10,size=(3,2,3))
print(arr2)
[[[8 7 8]
[6 2 6]]
[[5 4 1]
[7 8 4]]
[[9 2 5]
[7 5 8]]]
创建平均数组
创建一个从0,5平均分成10分
arr3=np.linspace(0,5,10)
print(arr3)
[0. 0.55555556 1.11111111 1.66666667 2.22222222 2.77777778
3.33333333 3.88888889 4.44444444 5. ]
拷贝
使用view生成的是浅拷贝内容 使用copy生成的是一个新的数组
arr4=student.view()
print(arr4)
[[ 1 2 3 4 5 6]
[ 66 34 88 96 57 70]
[ 58 22 100 49 65 34]
[ 88 94 38 29 20 80]]
arr_copy=arr3.copy()
print(arr_copy)
[0. 0.55555556 1.11111111 1.66666667 2.22222222 2.77777778
3.33333333 3.88888889 4.44444444 5. ]
数组的去重和合并
使用unique可以进去重 使用concatenate进行合并 使用delete进行删除 使用insert在特定位置进行插入数组
arr5=np.array([1,2,2,31,1,2,3])
print(arr5)
print(np.unique(arr5))
[ 1 2 2 31 1 2 3]
[ 1 2 3 31]
arr_demo=np.array([100,200])
print(np.concatenate(arr5,arr_demo)
Cell In [56], line 2
print(np.concatenate(arr5,arr_demo)
^
SyntaxError: unexpected EOF while parsing