创建数组
1.Numpy.array()
numpy.array(object,dtype=None,copy=True,order=None,ndmin=0)
参数:
- object:表示一个数组序列
- dtype: 通过它可以更改数组的数据类型,可以自填参数
- copy: 表示数组能否被复制,默认值为True
- order: 以哪种内存布局创建数组,有 3 个可选值,分别是 C(行序列)/F(列序列)/A(默认)
- ndmin: 用于指定数组的维度
例子:
a = np.array([127, 128, 129], dtype=np.int8)
>>> a
array([ 127, -128, -127], dtype=int8)
a = np.array([2, 3, 4], dtype=np.uint32)
>>> b = np.array([5, 6, 7], dtype=np.uint32)
>>> c_unsigned32 = a - b
>>> print('unsigned c:', c_unsigned32, c_unsigned32.dtype)
unsigned c: [4294967293 4294967293 4294967293] uint32
>>> c_signed32 = a - b.astype(np.int32)
>>> print('signed c:', c_signed32, c_signed32.dtype)
signed c: [-3 -3 -3] int64
2Numpy.arrange()
注意:numpy.arange的最佳实践是使用整数开始、结束和步进值。关于dtype有一些微妙之处。在第二个示例中,定义了dtype。在第三个示例中,数组是dtype=float,以适应0.1的步长。由于四舍五入错误,有时包括停止值。
np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.arange(2, 10, dtype=float)
array([2., 3., 4., 5., 6., 7., 8., 9.])
>>> np.arange(2, 3, 0.1)
array([2. , 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9])
3常用的生成方法
np.zeros((2, 3))
array([[0., 0., 0.],
[0., 0., 0.]])
>>> np.zeros((2, 3, 2))
array([[[0., 0.],
[0., 0.],
[0., 0.]],
[[0., 0.],
[0., 0.],
[0., 0.]]])
Ndarray创建函数,例如numpy.ones、numpy.zeros和随机定义基于所需形状的数组。Ndarray创建函数可以通过指定元组或列表中该维度的维度和长度来创建具有任何维度的数组。
Numpy.zeros将创建一个充满指定形状的0值的数组。默认的dtype是float64:
np.ones((2, 3))
array([[1., 1., 1.],
[1., 1., 1.]])
>>> np.ones((2, 3, 2))
array([[[1., 1.],
[1., 1.],
[1., 1.]],
[[1., 1.],
[1., 1.],
[1., 1.]]])
2随机数组
1. random函数
random
函数是最常见的生成随机数的方法,用于在区间[0,1)
中生成均匀分布的随机数或随机数数组。
print('生成10个随机数组:',np.random.random(10))
生成10个随机数组: [0.78403643 0.86951582 0.46432236 0.60289239 0.47522589 0.47570346
0.08911971 0.60222356 0.09509883 0.39883192]
2. rand函数
本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值。随机样本取值范围是[0,1),不包括1。
np.random.rand(d0,d1,d2……dn)
np.random.rand(2,3)
array([[0.48142724, 0.47994795, 0.3866318 ],
[0.11259652, 0.97729317, 0.21072319]])
3. randn() 函数
np.random.randn(d0, d1, d2, ..., dn)
是一个NumPy函数,用于生成服从标准正态分布(均值为0,标准差为1)的随机数的数组。
这个函数可以有不同的使用方式:
- 如果没有参数,函数返回一个单个的浮点数。
- 如果函数括号内有一个参数,函数返回一个一维数组,其秩为1。需要注意的是,该数组不能表示向量或矩阵,仅表示一维数据。
- 如果函数括号内有两个或多个参数,函数返回具有对应维度的数组,可以表示向量或矩阵。
- 另外,
np.random.standard_normal()
函数与np.random.randn()
类似,但是它的输入参数是一个元组(tuple)。
总结一下:
np.random.randn()
生成服从标准正态分布的随机数数组。- 使用不同数量的参数可以控制生成数组的维度。
np.random.standard_normal()
是一种类似的函数,但接受一个元组作为参数。
np.random.randn(2,3)
array([[-0.23037688, -0.95561502, 0.49889129],
[ 1.75961354, -0.59473613, -2.66341955]])
4. randint() 函数
np.random.randint(low, high=None, size=None, dtype=int)
是一个NumPy函数,用于生成指定范围内的随机整数数组。
该函数的格式如下:
- 参数
low
表示生成随机整数的最小值。 - 参数
high
表示生成随机整数的最大值(不包含在结果中)。如果未提供high
参数,则默认范围为[0, low)。 - 参数
size
是可选的,用于指定生成的随机整数数组的维度。如果未设置size
,则仅生成一个随机整数。如果想生成多个随机整数,可以使用一个元组来指定数组的维度信息。 - 参数
dtype
是可选的,表示生成的随机整数的数据类型,默认为np.int
。
总结一下:
np.random.randint()
可以生成指定范围内的随机整数数组。- 可以通过设置
low
和high
参数来指定生成随机整数的范围。 - 可以使用
size
参数来指定生成的随机整数数组的维度。 dtype
参数可以用来指定生成的随机整数的数据类型。
np.random.randint(1,9,size = [2,3])
array([[2, 8, 3],
[6, 4, 6]])