如何通过形状(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.]])
元组和列表如何给出相同的输出?
答案 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
始终是一个元组。