我有一个清单,说
a = [3, 4, 5, 6, 7]
我想创建一个该列表长度为零的numpy数组。
如果我这样做
b = np.zeros((len(a), 1))
我明白了
[[0,0,0,0,0]]
代替
[0,0,0,0,0]
获得后一种选择的最佳方法是什么?
答案 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])