Здравствуйте, у меня очень простая проблема.но я не понимаю, в чем причина проблемы.
У меня есть следующий скрипт python (3).у меня numpy 1.13.1 (старый, но моя проблема с dtype
должна работать).в соответствии с этот тип d существует в ufunc
начиная с 1.6
import numpy as np
M=1001
N = 2 ** np.ceil(np.log2(M))
N
Out[252]: 1024.0
2 ** np.ceil(np.log2(M),dtype=int)
Traceback (most recent call last):
File "<ipython-input-253-4b982a04c884>", line 1, in <module>
2 ** np.ceil(np.log2(M),dtype=int)
TypeError: No loop matching the specified signature and casting
was found for ufunc ceil
2 ** np.ceil(np.log2(M),dtype=float)
Out[254]: 1024.0
2 ** np.ceil(np.log2(M),dtype=np.float64)
Out[256]: 1024.0
2 ** np.ceil(np.log2(M),dtype=np.float32)
Out[257]: 1024.0
2 ** np.ceil(np.log2(M),dtype=np.int64)
Traceback (most recent call last):
File "<ipython-input-258-9902fa43f3ac>", line 1, in <module>
2 ** np.ceil(np.log2(M),dtype=np.int64)
TypeError: No loop matching the specified signature and casting
was found for ufunc ceil
2 ** np.ceil(np.log2(M),dtype=np.int32)
Traceback (most recent call last):
File "<ipython-input-259-8a2f2834384f>", line 1, in <module>
2 ** np.ceil(np.log2(M),dtype=np.int32)
TypeError: No loop matching the specified signature and casting
was found for ufunc ceil
Как вы можете видеть, когда я меняю dtype
на int
, int32
или int64
это терпит неудачу.Вероятно, что-то кроме float
терпит неудачу.Я предполагаю, что это не должно делать это!Я могу добавить небольшое исправление, чтобы int(np.ceil(...))
получил желаемый результат.
Я хочу знать, в чем причина этой проблемы?Так как я не читаю ничего в справочном руководстве numpy о любой проблеме с этим ( ссылка numy ceil ).
Если возможно, решить эту проблему, чтобы онаработает так, как я начал
Спасибо