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)
posted @ 2023-01-03 06:27  顺心无忧  阅读(77)  评论(0编辑  收藏  举报