numpy生成数组的方法
生成数组的方法
1.生成0和1数组
- np.ones(shape,dtype)
- np.ones_like(a,dtype)
- np.zeros(shape,dtype)
- np.zeros_like(shape,dtype)
score = np.array([[80,89,86,67,79],[78,97,89,67,81],
[90,94,78,67,74],[91,91,90,67,69],
[76,87,75,67,86],[70,79,84,67,84],
[94,92,93,67,64],[86,85,83,67,80]])
ones = np.ones([4,8])#生成4行8列元素全是1的数组
zeros = np.zeros([4,8])#生成4行8列元素全是0的数组
one_like = np.ones_like(score)#生成一个与score同行数或列数的含有元素1的数组
one_like = np.zeros_like(score)#生成一个与score同行数或列数的含有元素1的数组
2.从现有数组生成
2.1生成方式
- np.array(object,dtype)
- np.asarray(a,dtype)
a = np.array([[1,2,3],[4,5,6]])
#从现有的数组当中创建
a1 = np.array(a)#深拷贝,改变数据结构
#相当于索引的形式,并没有真正的创建一个新的
a2 = np.asarray(a)#浅拷贝
a[0,0] = 1000
print(a1)#当a改变时,a1的结果不改变,对应的是深拷贝
"""
[[1 2 3]
[4 5 6]]
"""
print(a2)#当a改变时,a2的结果不改变,对应的是浅拷贝
"""
[[1000 2 3]
[ 4 5 6]]
"""
3.生成固定范围的数组
-
np.linspace(start, stop, num)
- np.arange(start, stop, num)
- 创建等差数列—指定步长
- mp.logspace(start, stop, num), num:生成等比数列的数量
- 创建等比数列
- num:要生成等比数列的数量,默认为50
a = np.linspace(0,100,11)#起始为0,结尾为100,生成11个数
#输出结果:[ 0. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.]
a = np.arange(10,100,2)#起始为0,结尾为100,步长为2的数组
"""
[10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56
58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98]
"""
a = np.logspace(0,2,10) #从10的0次方,10的2次方中生成10个等比数列
#输出结果:[ 1. 10. 100.]
print(a)
4.生成随机数组
- np.random模块
#生成正态数据
x1 = np.random.normal(1.75,1,10000000)#生成10000000个均数为1.75标准差为1
print(x1)
#画相应的图
#1.创建画布
plt.figure(figsize=(20,8),dpi=100)
#2.绘制图像
plt.hist(x1,1000)#绘制1000个分组的直方图
#3.显示图像
plt.show()
#生成均匀分布数据
x1 = np.random.uniform(-1,1,10000000)#生成10000000个下限为-1上限为1的均匀分布数
print(x1)
#画相应的图
#1.创建画布
plt.figure(figsize=(20,8),dpi=100)
#2.绘制图像
plt.hist(x1,1000)#绘制1000个分组的直方图
#3.显示图像
plt.show()
#举例子
x1 = np.random.uniform(0,1,[4,5]) #生成一个4行5列的波动区间在4~5之间的数组
print(x1)
#画相应的图
记录学习的点点滴滴