为啥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】:

appendextend 是就地方法并返回 None

print(l.append(3)) # None
print(l.extend([3])) # None

【讨论】:

以上是关于为啥numpy在执行list方法时不创建数组的主要内容,如果未能解决你的问题,请参考以下文章

为啥将结果添加到 List 时不执行方法调用?

从 numpy 数组列表创建 numpy 数组的 Pythonic 方法

numpy-2 创建数组对象方法

numpy数组-二维数组

numpy数组和python数组的区别

numpy创建字符串类型矩阵