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)
#画相应的图
posted @ 2023-02-21 17:20  小杨的冥想课  阅读(156)  评论(0编辑  收藏  举报