为啥numpy在执行list方法时不创建数组
Posted
技术标签:
【中文标题】为啥numpy在执行list方法时不创建数组【英文标题】:Why doesn't numpy create an array when executing a list method为什么numpy在执行list方法时不创建数组 【发布时间】:2022-01-10 05:18:36 【问题描述】:玩转 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])
它可以工作。
是什么导致了这种行为?
【问题讨论】:
【参考方案1】:append
函数将始终返回 None
。您必须在两行不同的代码中执行此操作:
import numpy as np
l = [39, 54, 72, 46, 89, 53, 96, 64, 2, 75]
l.append(3)
nl = np.array(l)
【讨论】:
【参考方案2】:append
和 extend
是就地方法并返回 None
。
print(l.append(3)) # None
print(l.extend([3])) # None
【讨论】:
以上是关于为啥numpy在执行list方法时不创建数组的主要内容,如果未能解决你的问题,请参考以下文章