numpy.zeros使用方法

https://www.sharpsightlabs.com/blog/numpy-zeros-python/

快速回顾numpy array

A NumPy array is basically like a container that holds numeric data that’s all of the same data type. I’m simplifying things a little, but that’s the essence of them.

We can create a very simple NumPy array as follows:

Numpy数组就像是一个容器,里面装着相同数据类型的数据。我们可以这样创建数组:

1
2
3
import numpy as np

np.array([[1,2,3,4,5,6],[7,8,9,10,11,12]])

z1

我们创建了一个拥有2行6列的二维数组。所有数据都是整数(integers)。记住,在numpy的数组里,所有数据都必须是相同的数据类型。

当然数组可以是更加复杂的三维数组或者N维数组。

创建空的数组Arrays

我们可以用Numpy array()函数创建一个空的,全是数字0的数组。

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

如果你需要创建更加大的多维数组,效率就不够高了:

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

别怕,我们可以用 Numpy reshape()方法:

1
np.zeros(90).reshape((3,30))

这个方法也不是很好,我们有更好的。

走,去看 zeros函数!

Zeros函数语法

这个函数可以让你创建只有0的数组。

更重要地,这个函数可以让你指定数组的维度(dimensions)。也可以让你指定数据类型。

z2

Then inside the zeros() function, there is a set of arguments. The first positional argument is a tuple of values that specifies the dimensions of the new array.

Next, there’s an argument that enables you to specify the data type. If you don’t specify a data type, np.zeros() will use floats by default.

可以简单地看成,np.zeros(shape = (n行, m列), dtype = 数据类型)。如果不指定数据类型,会默认为floats。

例子

例子1

有5个0,1维数组

1
np.zeros(5)

z3

那我们可以看到数组里有5个元素,都是0。并且都是浮点数。

例子2

dtype 指定数据类型,整数(int)。

1
np.zeros(3, dtype = int)

z4

还可以用dtype测试下数据的类型是不是整数int:

1
2
3
>>> np.zeros(3, dtype = int).dtype

>>> dtype('int64')

例子3

指定shape:

1
np.zeros(shape = (2, 3))

z5

也可以写成这样:

1
np.zeros((2, 3))

例子4

指定shape和dtype:

1
np.zeros(shape = (3, 5), dtype = 'int')

z6

我们创建了一个3行5列的都是0的矩阵。

例子5

接下来我们可以试试更加大的数组:

1
np.zeros(shape = (3, 3, 5), dtype = 'int')

z7


https://docs.scipy.org/doc/

https://www.numpy.org/devdocs/reference/generated/numpy.zeros.html?highlight=zeros

numpy.zeros(shape, dtype=float, order=’C’)

Return a new array of given shape and type, filled with zeros.

Parameters

shape : int or tuple of ints

Shape of the new array, e.g., (2, 3) or 2.

dtype : data-type, optional

The desired data-type for the array, e.g., numpy.int8. Default is numpy.float64.

order : {‘C’, ‘F’}, optional, default: ‘C’

Whether to store multi-dimensional data in row-major (C-style) or column-major (Fortran-style) order in memory.

Returns

out : ndarray

Array of zeros with the given shape, dtype, and order.

例子

1
2
>>> np.zeros(5)
array([ 0., 0., 0., 0., 0.])
1
2
>>> np.zeros((5,), dtype=int)
array([0, 0, 0, 0, 0])
1
2
3
>>> np.zeros((2, 1))
array([[ 0.],
[ 0.]])
1
2
3
4
>>> s = (2,2)
>>> np.zeros(s)
array([[ 0., 0.],
[ 0., 0.]])
1
2
3
>>> np.zeros((2,), dtype=[('x', 'i4'), ('y', 'i4')]) # custom dtype
array([(0, 0), (0, 0)],
dtype=[('x', '<i4'), ('y', '<i4')])