NumPy科学计算库学习_001_创建NumPy数组的各种方法
引入模块
import numpy as np
创建元素全部是0/1的NumPy数组
代码结构
np.zeros(shape=n)
np.ones(shape=n)
案例
zeros_np_arr_1_dim = np.zeros(shape=13)
zeros_np_arr_2_dim = np.zeros(shape=(2,3))
zeros_np_arr_3_dim = np.zeros(shape=(2,3,2))
# 4维、5维...
ones_np_arr_1_dim = np.ones(shape=13)
ones_np_arr_2_dim = np.ones(shape=(2,3))
ones_np_arr_3_dim = np.ones(shape=(2,3,2))
# 4维、5维...
print("【zeros_np_arr_1_dim】\n", zeros_np_arr_1_dim)
print("【zeros_np_arr_2_dim】\n", zeros_np_arr_2_dim)
print("【zeros_np_arr_3_dim】\n", zeros_np_arr_3_dim)
print("【ones_np_arr_1_dim】\n", ones_np_arr_1_dim)
print("【ones_np_arr_2_dim】\n", ones_np_arr_2_dim)
print("【ones_np_arr_3_dim】\n", ones_np_arr_3_dim)
【zeros_np_arr_1_dim】
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
【zeros_np_arr_2_dim】
[[0. 0. 0.]
[0. 0. 0.]]
【zeros_np_arr_3_dim】
[[[0. 0.]
[0. 0.]
[0. 0.]]
[[0. 0.]
[0. 0.]
[0. 0.]]]
【ones_np_arr_1_dim】
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
【ones_np_arr_2_dim】
[[1. 1. 1.]
[1. 1. 1.]]
【ones_np_arr_3_dim】
[[[1. 1.]
[1. 1.]
[1. 1.]]
[[1. 1.]
[1. 1.]
[1. 1.]]]
随机生成NumPy整数数组
代码结构
np.random.randint(a, b, size=n)
# [a,b)区间内随机生成size为n的整数数组,size可以为1维、2维、3维等。
# np.random.randint(a, size=n)中,范围为:[0, a)
案例
rand_int_1_dim = np.random.randint(-3,10,size=10)
rand_int_1_dim_no_high = np.random.randint(4,size=10)
rand_int_2_dim = np.random.randint(0,10,size=(2,3))
rand_int_3_dim = np.random.randint(0,10,size=(2,3,4))
print("【rand_int_1_dim】\n",rand_int_1_dim)
print("【rand_int_1_dim_no_high】\n", rand_int_1_dim_no_high)
print("【rand_int_2_dim】\n",rand_int_2_dim)
print("【rand_int_3_dim】\n",rand_int_3_dim)
【rand_int_1_dim】
[ 0 9 -3 -1 -3 -1 9 5 9 0]
【rand_int_1_dim_no_high】
[2 1 1 0 0 1 1 0 1 0]
【rand_int_2_dim】
[[2 9 1]
[7 4 6]]
【rand_int_3_dim】
[[[7 5 7 6]
[7 9 6 3]
[9 8 3 7]]
[[9 1 2 0]
[1 4 5 3]
[1 2 7 6]]]
创建元素全部是a(a可自定义)的NumPy数组
代码结构
np.full(shape=a,fill_value=b)
# a可以是1维、2维等;b为自定义元素
案例
np_full_1_dim = np.full(shape=10,fill_value=9.1)
np_full_2_dim = np.full(shape=(2,3),fill_value='message')
print("【np_full_1_dim】\n",np_full_1_dim)
print("【np_full_2_dim】\n",np_full_2_dim)
【np_full_1_dim】
[9.1 9.1 9.1 9.1 9.1 9.1 9.1 9.1 9.1 9.1]
【np_full_2_dim】
[['message' 'message' 'message']
['message' 'message' 'message']]
创建随机正态分布(高斯分布)的NumPy数组
代码结构
np.random.randn(n,[p],[q],...)
# 1维:填写n的参数;2维:填写n、p参数;3维:填写n、p、q参数;...
正态分布
- 概率密度函数:随机变量X服从一个
位置参数(平均值):
\(\mu\)、尺度参数(标准差):
\(\sigma\) 的概率分布。
\[f(x)=\frac{1}{\sqrt{2\pi}\sigma}{e}^{-\frac{(x-\mu)^{2}}{2\sigma^2}}
\]
- 正态分布时:
标准差=1
,标准差代表波动。符号为\(\sigma\);平均值=0
,符号为\(\mu\)
\[f(x)=\frac{1}{\sqrt{2\pi}}{e}^{-\frac{x^{2}}{2}}
\]
案例
rand_randn_1_dim = np.random.randn(10) # 10个正态分布
rand_randn_2_dim =np.random.randn(2,3) # 2行3列正态分布
rand_randn_3_dim = np.random.randn(2,3,4) # 2个3行4列正态分布
print("【rand_randn_1_dim】\n",rand_randn_1_dim)
print("【rand_randn_2_dim】\n",rand_randn_2_dim)
print("【rand_randn_3_dim】\n",rand_randn_3_dim)
【rand_randn_1_dim】
[-0.26134334 -1.24007415 -0.49224918 -1.08961857 -1.05376762 0.92694362
-0.44054338 -1.61763091 -1.14292796 0.20244724]
【rand_randn_2_dim】
[[-1.28165352 -0.52322378 1.1849937 ]
[ 0.28513139 0.09189967 1.37145105]]
【rand_randn_3_dim】
[[[ 0.84524153 1.16178073 -0.23711214 0.17428454]
[-0.11779899 -0.90749366 0.74811081 -1.12089057]
[-0.09068517 0.61026182 1.42552725 0.20360365]]
[[-0.2722333 0.86113041 0.43176374 0.11032569]
[-0.87499484 1.28825678 -0.7696696 -1.09852633]
[-0.35172055 2.50484214 0.17436942 0.8619142 ]]]
创建一个等差数列
代码结构
np.linspace(a,b,c)
# 区间为[a,b],一共分成c份,生成一个等差数列。
np.arange(start=a,stop=b,step=c)
# 区间为[a,b),每步为c,生成一个等差数列。
案例
linspace_arr = np.linspace(1,100,10)
arange_arr = np.arange(start=0,stop=20,step=3)
print("【linspace_arr】\n",linspace_arr)
print("【arange_arr,arange_arr】\n",arange_arr)
【linspace_arr】
[ 1. 12. 23. 34. 45. 56. 67. 78. 89. 100.]
【arange_arr,arange_arr】
[ 0 3 6 9 12 15 18]
创建一个等比数列
代码结构
- 区间为[\(c^{a}\), \({c^b}\)],c为底数,d为数组的元素个数,生成一个等比数列。
np.logspace(a,b,base=c,num=d)
案例
logspace_arr = np.logspace(0,10,base=2,num=11)
print("【logspace_arr】\n",logspace_arr)
【logspace_arr】
[ 1. 2. 4. 8. 16. 32. 64. 128. 256. 512. 1024.]
创建一个size可自定义的,元素类型为float的NumPy数组
代码结构
np.random.random(size=a)
# a可以说1维、2维、3维等。
案例
rand_rand_1_dim = np.random.random(size=(2))
rand_rand_2_dim = np.random.random(size=(2,3))
rand_rand_3_dim = np.random.random(size=(2,3,2))
print("【rand_rand_1_dim】\n",rand_rand_1_dim)
print("【rand_rand_2_dim】\n",rand_rand_2_dim)
print("【rand_rand_3_dim】\n",rand_rand_3_dim)
【rand_rand_1_dim】
[0.06893555 0.65303294]
【rand_rand_2_dim】
[[0.38788578 0.70816777 0.23989662]
[0.31511452 0.08127854 0.69369976]]
【rand_rand_3_dim】
[[[0.91108915 0.71183959]
[0.82619817 0.17828404]
[0.09082879 0.67872793]]
[[0.40652366 0.67206697]
[0.10980257 0.49430899]
[0.8548336 0.37354673]]]
设置输出不显示科学计数法
np.set_printoptions(suppress=True)