【问题标题】:TypeError: Data type not understood, numpy.zeros [duplicate]TypeError:数据类型不理解,numpy.zeros [重复]
【发布时间】:2018-12-01 01:15:17
【问题描述】:

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

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左右的整数值。很抱歉我只能给出代码sn-ps而不是整个文件,但是我不允许透露整个文件。

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

【问题讨论】:

    标签: python numpy for-loop typeerror zero


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      使用整数序列:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2020-06-16
          • 2018-05-24
          • 2021-06-11
          • 2020-03-25
          • 2021-07-17
          • 2019-04-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多