在Python中,你可以用什么方法制作一个空的NumPy数组



(https://i.stack.imgur.com/eakU9.jpg)

使数组为空Numpy

如果所说的空数组,你指的是一个维度为0的数组,你可以简单地将一个空列表转换为NumPy数组:

import numpy as np
np.array([])
# array([], dtype=float64)

或者使用具有(0,)0形状的NumPy的任何初始化函数,例如:

np.zeros((0,))
# array([], dtype=float64)
np.ones((0,))
# array([], dtype=float64)
np.empty((0,))
# array([], dtype=float64)
np.full((0,), 0.0)                                                                          
# array([], dtype=float64)

等等。


如果为空是指给定大小但未初始化的数组(即,您只要求操作系统提供所需的内存),则可以使用指定所需大小的np.empty(),例如:

np.empty((2, 3))
# array([[1.46643506e-316, 0.00000000e+000, 0.00000000e+000],
#        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000]])

有两种方法可以创建空NumPy数组:numpy.zerosnumpy.empty

使用numpy.zeros和numpy.empty的语法如下所示:

numpy.zeros(shape, dtype=float, order='C')
numpy.empty(shape, dtype=float, order='C')
# Shape -> Shape of the new array, e.g., (2, 3) or 2.
# dtype -> The desired data-type for the array,e.g., numpy.int8. Default is numpy.float64. This parameter is optional.
# order -> Indicates whether multi-dimensional data should be stored in row-major (C-style) or column-major (Fortran-style) order in memory. This parameter is optional.

如何使用numpy.zeros创建一个空的NumPy数组:

import numpy as np
myArr = np.zeros((2,3))
print(myArr)

如何使用numpy.empty创建一个空的NumPy数组:

import numpy as np
myArr = np.empty((2,3))
print(myArr)

numpy.zeros不同,numpy.empty不将数组值设置为零,​因此可能稍微快一些。另一方面,它要求用户手动设置数组中的所有值​应谨慎使用。