如何创建一个列表长度为零的numpy数组?

时间:2019-01-20 10:34:45

标签: python arrays numpy

我有一个清单,说

a = [3, 4, 5, 6, 7]

我想创建一个该列表长度为零的numpy数组。

如果我这样做

b = np.zeros((len(a), 1))

我明白了

  

[[0,0,0,0,0]]

代替

  

[0,0,0,0,0]

获得后一种选择的最佳方法是什么?

3 个答案:

答案 0 :(得分:3)

如果您不想关心形状,请使用np.zeros_like

np.zeros_like(a)
# array([0, 0, 0, 0, 0])

还有查询np.shape的选项:

np.zeros(np.shape(a))
# array([0., 0., 0., 0., 0.])

这两个选项也应适用于ND列表。

答案 1 :(得分:3)

您将两个元素的tuple传递给zeros,因此产生了2D数组,您只需将整数传递给zeros

a = [3, 4, 5, 6, 7]
b = np.zeros(len(a))
print(b) #prints [ 0.  0.  0.  0.  0.]

答案 2 :(得分:0)

您可以尝试

np.zeros(len(a), dtype=np.int)

它将返回

array([0, 0, 0, 0, 0])