python中的np.empty((0,shape))是什么意思?

时间:2017-12-07 02:06:27

标签: python numpy

如何通过形状(0,2)的元组?

a = np.empty((0,2))
a
>>> array([], shape=(0, 2), dtype=float64)

在np.empty()中将形状作为参数传递时,元组和列表之间有什么区别?

arr = np.empty((2,2))
arr
>>> array([[ 0.,  0.],
           [ 0.,  0.]])
arr1 = np.empty([2,2])
arr1
>>> array([[ 0.,  0.],
           [ 0.,  0.]])

元组和列表如何给出相同的输出?

1 个答案:

答案 0 :(得分:1)

允许将带有0的元组(如(0,2))作为形状参数传递,但结果数组为空,因为它包含0 * 2 = 0个元素。用文字写出来,它是“每行中有2个元素的零行”,其中“每行中有2个元素”并没有太大的影响,因为没有行。

当切片出错时会出现这样的数组:例如,

b = np.ones((2, 2))
a = b[2:, :]

使a成为形状(0, 2)的数组,因为没有第一个索引的值落在给定切片中。没有理由有意创建这样的数组。

np.empty([2, 2])np.empty((2, 2))之间没有区别,数组创建方法与许多其他NumPy方法一样,接受列表而不是元组。仍然建议使用元组作为形状参数,因为arr.shape始终是一个元组。