Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TypeError: Data type not understood, numpy.zeros [duplicate]

I am getting an error while running my code. The error I receive is:

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

My code is:

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)

The variable count represents a integer value of about 5000. I apologize I can only give code snippets instead of the entire file, but I am not allowed to disclose the full file.

Not really sure why I'm getting this error, I have tried a few different methods of setting up numpy zeros array and setting up a 2D matrix. Please note that I import numpy as np so thats why its called np. I am using python3, if you have any other suggestions for setting up a 2D array and accessing it better than I am here that would be appreciated as well.

like image 918
Fletchy Avatar asked Oct 19 '25 10:10

Fletchy


2 Answers

You need to pass in a tuple. Try np.zeros((count, count)).

Further documentation on this method available here: https://docs.scipy.org/doc/numpy/reference/generated/numpy.zeros.html

like image 148
Benjamin Engwall Avatar answered Oct 22 '25 00:10

Benjamin Engwall


Use a sequence of ints:

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

Shape parameter of zeros accepts int or sequence of ints. Refer docs.

like image 28
Austin Avatar answered Oct 22 '25 01:10

Austin