>>> np.iinfo('intc')
iinfo(min=-2147483648, max=2147483647, dtype=int32)
>>> np.iinfo('uintc')
iinfo(min=0, max=4294967295, dtype=uint32)
>>> np.iinfo('longlong')
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)
>>> np.iinfo('ulonglong')
iinfo(min=0, max=18446744073709551615, dtype=uint64)
>>> np.iinfo('long')
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)
>>> np.iinfo('ulong')
Traceback (most recent call last):
File "<ipython-input-20-e783aa7ef3c1>", line 1, in <module>
np.iinfo('ulong')
File "/home/antoine/miniconda3/envs/pyarrow/lib/python3.6/site-packages/numpy/core/getlimits.py", line 516, in __init__
raise ValueError("Invalid integer data type.")
ValueError: Invalid integer data type.
الإصلاح السهل هنا هو استخدام np.iinfo(np.uint)
أعتقد أن هذا بسبب فك تشفير 'long'
إلى __buitins__.long
وفقًا لـ https://docs.scipy.org/doc/numpy/user/basics.types.html :
بالإضافة إلى ذلك ، يتم تعريف أنواع الأعداد الصحيحة C المعتمدة على النظام الأساسي ، وهي قصيرة وطويلة وطويلة وغير موقعة.
المستندات خاطئة. يسمى النوع الصحيح C long
np.int_
، ونوع العدد الصحيح unsigned long
يسمى np.uint
بقدر ما أستطيع أن أرى ، يجب إصلاح هذا في # 11837 أيضًا؟ :)
شكرا لإيجاد هذا @ ax3l
على الرحب والسعة ، لا يمكن إلا توجيه الشكر إلى @ C0nsultant الذي أشرنا إليه هنا :)
التعليق الأكثر فائدة
شكرا لإيجاد هذا @ ax3l