TypeError: Data type not understood, numpy.zeros

TypeError: Data type not understood, numpy.zeros

我在 运行 我的代码中遇到错误。我收到的错误是:

Traceback (most recent call last):
File "/Users/penguin/PycharmProjects/Greatness/venv/Recipes.py", line 
153, in <module>
newRatios = np.zeros(count,count)
TypeError: data type not understood

Process finished with exit code 1

我的代码是:

count1 = 0
count2 = 0
newRatios = np.zeros(count,count)
print(newRatios)
for ep in XDF['EmailPrefix']:
   for ep2 in XDF['EmailPrefix']:
       if count1 != count2:
           newRatios[count1,count2] = fuzz.token_sort_ratio(ep,ep2)
       else:
           newRatios[count1,count2] = None
       count2 += 1
   count1 += 1
   if(count1 == 2500):
       print('Halfway')

print(newRatios)

变量count表示一个整数值,大约是5000。很抱歉我只能给出代码片段而不是整个文件,但我不能透露完整的文件。

不太确定为什么会出现此错误,我尝试了几种不同的方法来设置 numpy zeros 数组和设置 2D 矩阵。请注意,我将 numpy 导入为 np,这就是为什么它被称为 np。我正在使用 python3,如果您对设置 2D 数组和访问它比我在这里有任何其他建议,也将不胜感激。

你需要传入一个元组。试试 np.zeros((count, count)).

此处提供有关此方法的更多文档:https://docs.scipy.org/doc/numpy/reference/generated/numpy.zeros.html

使用整数序列:

newRatios = np.zeros((count,count))

zeros 的形状参数接受整数或整数序列。参考 docs.

np.zeros 接受一个可迭代对象作为形状参数。您需要将参数作为 np.zeros((count,count)) 传递。注意额外的括号。您当前正在做的是将 count 作为 shape 传递,然后再次将 count 作为数据类型传递。它无法识别 count 表示的数据类型,因此会出现错误。