为什么numpy在执行列表方法时不创建数组
Why doesn't numpy create an array when executing a list method
玩弄 numpy:
import numpy as np
l = [39, 54, 72, 46, 89, 53, 96, 64, 2, 75]
nl = np.array(l.append(3))
>> array(None, dtype=object)
现在,如果我调用 l
,我会得到列表:[39, 54, 72, 46, 89, 53, 96, 64, 2, 75, 3]
我的问题是,为什么 numpy 不将该列表创建为数组?
如果我这样做:
nl = np.array(l.extend([45]))
我也一样。
但是,如果我尝试在没有方法的情况下进行连接:nl = np.array(l+[45])
它有效。
是什么导致了这种行为?
append
函数将始终 return None
。您必须在两行不同的代码中执行此操作:
import numpy as np
l = [39, 54, 72, 46, 89, 53, 96, 64, 2, 75]
l.append(3)
nl = np.array(l)
append
和 extend
是就地方法,return None
.
print(l.append(3)) # None
print(l.extend([3])) # None
玩弄 numpy:
import numpy as np
l = [39, 54, 72, 46, 89, 53, 96, 64, 2, 75]
nl = np.array(l.append(3))
>> array(None, dtype=object)
现在,如果我调用 l
,我会得到列表:[39, 54, 72, 46, 89, 53, 96, 64, 2, 75, 3]
我的问题是,为什么 numpy 不将该列表创建为数组?
如果我这样做:
nl = np.array(l.extend([45]))
我也一样。
但是,如果我尝试在没有方法的情况下进行连接:nl = np.array(l+[45])
它有效。
是什么导致了这种行为?
append
函数将始终 return None
。您必须在两行不同的代码中执行此操作:
import numpy as np
l = [39, 54, 72, 46, 89, 53, 96, 64, 2, 75]
l.append(3)
nl = np.array(l)
append
和 extend
是就地方法,return None
.
print(l.append(3)) # None
print(l.extend([3])) # None