【发布时间】:2021-09-19 09:15:45
【问题描述】:
如果我这样做
import numpy as np
l = np.array([1, 2, 3, 'A', 'B'], dtype=str)
print(l + l)
我收到错误“numpy.core._exceptions.UFuncTypeError: ufunc 'add' did not contain a loop with signature matching types (dtype(' 我不明白为什么会发生这样的事情,我肯定有和它自己一样的 dtype。如果我还创建了一个新数组并尝试将它们都添加,即使将两个 dtype 都转换为 str,仍然会出现此错误。
【问题讨论】:
-
您希望发生什么?
-
它告诉你它不支持该操作的 unicode dtype。
-
错误不是抱怨不同的数据类型。这是一个
+在处理字符串时意味着什么的问题。 Python 字符串将其定义为连接。+用于数字 dtypes 是加法。numpy开发人员选择不为字符串 dtype 定义它。大多数情况下,numpy没有任何快速编译的字符串代码;np.char函数都使用 Python 自己的字符串方法。