2014-10-15 16 views
5

Trong Numpy tôi đã thử những điều sau đây. Tôi nghi ngờ rằng đây không phải là một lỗi. Trong trường hợp nó là một tính năng, tôi không hiểu nó. Ai đó có thể giải thích điều này? Cảm ơn.Tính nhất quán Loại (In) nhất quán?

>>> np.array([173], dtype = np.uint8) * [360] 
array([62280]) 
>>> np.array([173], dtype = np.uint8) * 360 
array([-3256], dtype=int16) 
>>> 
+1

Phiên bản khó chịu ?? –

+0

Tôi nhận được 'mảng ([62280], dtype = uint16)' trong cả hai trường hợp. Numpy 1.8.1 trên Ubuntu. –

+1

Nhận 'mảng ([62280], dtype = uint16)' trong cả hai trường hợp, numpy 1.8.1 trên Windows, Python 2.7.6 –

Trả lời

1

Sự khác biệt giữa các đầu ra này có thể là do lỗi trong phiên bản gọn gàng của bạn.

np.array([173], dtype = np.uint8) * [360] 

là viết tắt cho:

np.array([173], dtype = np.uint8) * np.array([360]) 
# output array([62280]) 

Và như vậy [360] được chuyển thành một mảng NumPy với dtype = int. Phép nhân có độ chính xác cao nhất và do đó nó trả về một mảng với độ chính xác int.

Các vấn đề liên quan