39

Python- numpy数组初始化为相同的值

 3 years ago
source link: http://www.banbeichadexiaojiubei.com/index.php/2020/11/14/python-numpy数组初始化为相同的值/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

有时我们需要将numpy数组初始化为相同的值,numpy提供了一些方法帮助我们实现这个目的。

1. np.zeros

np.zeros返回来一个给定形状和类型的用0填充的数组。

numpy.zeros(shape, dtype=float, order='C')
np.zeros(5)
array([ 0.,  0.,  0.,  0.,  0.])

np.zeros((5,), dtype=int)
array([0, 0, 0, 0, 0])

np.zeros((2, 1))
array([[ 0.],
       [ 0.]])

np.zeros((2, 2))
array([[ 0.,  0.],
       [ 0.,  0.]])

2. np.ones

np.ones返回来一个给定形状和类型的用1填充的数组。

numpy.ones(shape, dtype=None, order='C')
>>> np.ones(5)
array([1., 1., 1., 1., 1.])

>>> np.ones((5,), dtype=int)
array([1, 1, 1, 1, 1])

>>> np.ones((2, 1))
array([[1.],
       [1.]])

>>> s = (2,2)
>>> np.ones(s)
array([[1.,  1.],
       [1.,  1.]])

初始化数组中的所有元素为10:

>>> import numpy as np
>>> a = np.ones((4,4)) * 10
[[10. 10. 10. 10.]
 [10. 10. 10. 10.]
 [10. 10. 10. 10.]
 [10. 10. 10. 10.]]

3. np.full

np.full返回来一个给定形状和类型的用fill_value填充的数组。

numpy.full(shape, fill_value, dtype=None, order='C')
>>> np.full((3, 5), 7, dtype=int)
array([[7, 7, 7, 7, 7],
       [7, 7, 7, 7, 7],
       [7, 7, 7, 7, 7]])

>>> np.full((2, 2), np.inf)
array([[inf, inf],
       [inf, inf]])

>>> np.full((2, 2), [1, 2])
array([[1, 2],
       [1, 2]])

4. 数组填充-fill

np.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组。

numpy.empty(shape, dtype=float, order='C')

np.empy生成的数组元素为随机值。

>>> np.empty([2, 2])
array([[ -9.74499359e+001,   6.69583040e-309],
       [  2.13182611e-314,   3.06959433e-309]])         #uninitialized

>>> np.empty([2, 2], dtype=int)
array([[-1073741821, -1067949133],
       [  496041986,    19249760]])                     #uninitialized
>>> a = np.empty([2, 2])
>>> a.fill(20)
[[20. 20.]
 [20. 20.]]

>>> a[:] = 30
[[30. 30.]
 [30. 30.]]

5. np.repeat

np.repeat实现重复数组元素的功能。

numpy.repeat(a, repeats, axis=None)[source]
>>> np.repeat(3, 4)
array([3, 3, 3, 3])

>>> x = np.array([[1,2],[3,4]])
>>> np.repeat(x, 2)
array([1, 1, 2, 2, 3, 3, 4, 4])

>>> np.repeat(x, 3, axis = 1)
array([[1, 1, 1, 2, 2, 2],
       [3, 3, 3, 4, 4, 4]])

>>> np.repeat(x, [1, 2], axis = 0)
array([[1, 2],
       [3, 4],
       [3, 4]])

6. np.tile

np.tile把数组沿各个方向复制。

numpy.tile(A, reps)
>>> a = np.array([0, 1, 2])
>>> np.tile(a, 2)
array([0, 1, 2, 0, 1, 2])

>>> np.tile(a, (2, 2))
array([[0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2]])

>>> np.tile(a, (2, 1, 2))
array([[[0, 1, 2, 0, 1, 2]],
       [[0, 1, 2, 0, 1, 2]]])
>>> b = np.array([[1, 2], [3, 4]])
>>> np.tile(b, 2)
array([[1, 2, 1, 2],
       [3, 4, 3, 4]])

>>> np.tile(b, (2, 1))
array([[1, 2],
       [3, 4],
       [1, 2],
       [3, 4]])

>>> c = np.array([1,2,3,4])
>>> np.tile(c,(4,1))
array([[1, 2, 3, 4],
       [1, 2, 3, 4],
       [1, 2, 3, 4],
       [1, 2, 3, 4]])

参考材料


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK