创建数组#
import numpy as np
通过list创建#
a = np.array([[1, 2, 3], [2, 3, 4]])
a
array([[1, 2, 3],
[2, 3, 4]])
# 查看数组形状,是一个2行、3列的数组
a.shape
(2, 3)
创建常见数组#
# 创建指定形状,元素全为0的数组
np.zeros((4, 5))
array([[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]])
# 元素全为1的数组
np.ones((2, 3, 4))
array([[[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]],
[[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]]])
# 创建等差数列,参数为(start, end, step)
np.arange(1, 10, 2)
array([1, 3, 5, 7, 9])
# 创建等差数列,参数为(start, end, number)
np.linspace(0, 2, 5)
array([0. , 0.5, 1. , 1.5, 2. ])
指定数据类型#
# 查看数组数据类型
a.dtype
dtype('int64')
# 创建数组时指定数据类型
x = np.ones((2, 3), dtype=np.float32)
x.dtype
dtype('float32')
# 通过astype改变数据类型,必须赋值才可以
x = x.astype(np.float64)
x.dtype
dtype('float64')
随机数组#
# 指定size的[0, 1)间均匀分布
np.random.random(10), np.random.rand(3, 2)
(array([0.07321444, 0.21448377, 0.80332896, 0.14180708, 0.94717355,
0.55352441, 0.36359051, 0.32094518, 0.08718674, 0.11441867]),
array([[0.6498522 , 0.28313587],
[0.11012505, 0.58813332],
[0.68538013, 0.07783822]]))
# 标准正态分布
np.random.randn(2, 3)
array([[-1.27137123, -1.72454277, 0.91212217],
[-0.72829503, -0.77168279, -1.32224655]])
# 正态分布,参数为(mean, std, size)
np.random.normal(1, 2, (2, 2))
array([[-0.23676871, 0.6460357 ],
[ 1.42808547, 1.84584404]])
# 多维正态分布,参数为(mean, covariance, size)
np.random.multivariate_normal([0, 0], [[2, 1], [1, 3]], 10)
array([[ 1.38195025, -1.15768835],
[ 0.22548831, 0.46395142],
[ 2.52972501, 2.02646219],
[ 2.60153462, 0.34430792],
[-1.06295603, 1.28160624],
[ 0.84106914, 2.35040432],
[ 3.47730558, 2.61303685],
[ 1.09872877, 1.14198704],
[ 0.29423271, 1.66984985],
[ 1.07645524, 2.30237842]])
# 随机整数,参数为(low, high, size)
np.random.randint(0, 4, 10)
array([0, 3, 2, 2, 2, 3, 1, 0, 1, 3])
# 固定随机数种子,有助于复现,固定随机数种子为1后,下一个 np.random.random() 必定为 0.417022004702574
np.random.seed(1)
np.random.random()
0.417022004702574