Indexing một mảng NumPy với nhau - cả hai đều được định nghĩa là dtype = 'uint32'. Sử dụng numpy.take để lập chỉ mục và nhận được lỗi truyền không an toàn. Không đi qua điều này trước đây. Bất cứ ý tưởng những gì đang xảy ra?NumPy đúc mảng cai trị không phải là 'an toàn'
Python 2.7.8 |Anaconda 2.1.0 (32-bit)| (default, Jul 2 2014, 15:13:35) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import numpy
>>> numpy.__version__
'1.9.0'
>>> a = numpy.array([9, 7, 5, 4, 3, 1], dtype=numpy.uint32)
>>> b = numpy.array([1, 3], dtype=numpy.uint32)
>>> c = a.take(b)
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
c = a.take(b)
TypeError: Cannot cast array data from dtype('uint32') to dtype('int32') according to the rule 'safe'
Tôi không nhận được cảnh báo nào khi chạy python 3.4.3 64-bit và numpy '1.9.2rc1' – EdChum
Tôi nghĩ vấn đề là gán 'a.take (b)' cho 'c'. Hãy thử thiết lập 'c = numpy.array (0, dtype = numpy.uint32)' trước 'c = a.take (b)' –
Không có cảnh báo nào ở đây với Python 2.7.5 64-bit và numpy 1.9.1. – Carsten