Làm cách nào để chuyển mảng thực tế thành mảng int? Đã thử sử dụng bản đồ trực tiếp vào mảng nhưng nó không hoạt động.Làm thế nào để chuyển đổi mảng nổi 2D thành mảng 2D thành mảng numpy?
Trả lời
Sử dụng phương pháp astype
.
>>> x = np.array([[1.0, 2.3], [1.3, 2.9]])
>>> x
array([[ 1. , 2.3],
[ 1.3, 2.9]])
>>> x.astype(int)
array([[1, 2],
[1, 2]])
Một số chức năng NumPy cho làm thế nào để kiểm soát việc làm tròn: rint, floor, trunc, ceil. tùy thuộc vào cách u muốn làm tròn các phao, lên, xuống, hoặc đến gần nhất.
>>> x = np.array([[1.0,2.3],[1.3,2.9]])
>>> x
array([[ 1. , 2.3],
[ 1.3, 2.9]])
>>> y = np.trunc(x)
>>> y
array([[ 1., 2.],
[ 1., 2.]])
>>> z = np.ceil(x)
>>> z
array([[ 1., 3.],
[ 2., 3.]])
>>> t = np.floor(x)
>>> t
array([[ 1., 2.],
[ 1., 2.]])
>>> a = np.rint(x)
>>> a
array([[ 1., 2.],
[ 1., 3.]])
Để làm cho một trong những này trong sang int, hoặc một trong các loại khác trong NumPy, astype (như trả lời bằng cách BrenBern):
a.astype(int)
array([[1, 2],
[1, 3]])
>>> y.astype(int)
array([[1, 2],
[1, 2]])
Chính xác những gì tôi đang tìm kiếm. 'astype' thường quá chung chung và tôi nghĩ nó có thể hữu ích hơn khi thực hiện chuyển đổi intx - inty. Khi tôi muốn làm float-int chuyển đổi có thể chọn loại làm tròn là một tính năng tốt đẹp. – Bakuriu
Vì vậy, cách đơn giản nhất để chuyển đổi một cách an toàn gần như-int như '7.99999' thành ints như' 8', là 'np.rint (arr) .astype (int)'? – endolith
bất kỳ cách nào để gọn gàng để làm cho nó uint8? – Ryan
bạn có thể sử dụng np.int_
:
>>> x = np.array([[1.0, 2.3], [1.3, 2.9]])
>>> x
array([[ 1. , 2.3],
[ 1.3, 2.9]])
>>> np.int_(x)
array([[1, 2],
[1, 2]])
Nếu bạn không chắc chắn đầu vào của mình sẽ là mảng Numpy, bạn có thể sử dụng asarray
với dtype=int
thay vì astype
:
>>> np.asarray([1,2,3,4], dtype=int)
array([1, 2, 3, 4])
Nếu mảng đầu vào đã có dtype đúng, asarray
tránh sao chép mảng trong khi astype
không (trừ khi bạn chỉ định copy=False
):
>>> a = np.array([1,2,3,4])
>>> a is np.asarray(a) # no copy :)
True
>>> a is a.astype(int) # copy :(
False
>>> a is a.astype(int, copy=False) # no copy :)
True
- 1. chuyển đổi mảng 2D thành mảng 2D thành
- 2. Chuyển đổi mảng 1D thành mảng 2D theo dạng số
- 3. Chuyển đổi một mảng numpy 2D thành C++ ngắn **?
- 4. làm thế nào để chuyển đổi danh sách 2d thành mảng 2d?
- 5. Chuyển đổi một mảng 2D thành một mảng 1D
- 6. Chuyển đổi mảng 2D thành mảng có cấu trúc
- 7. chuyển đổi mảng 2D thành con trỏ thành con trỏ
- 8. Mảng 2d cắt thành các mảng 2d nhỏ hơn
- 9. Làm thế nào để gán một mảng numpy 1D cho mảng numpy 2D?
- 10. Numpy rebinning một mảng 2D
- 11. Làm thế nào để nhân mảng 2D numpy với mảng 1D numpy?
- 12. Chuyển tiếp mảng 2D
- 13. tại sao chuyển đổi danh sách 2D dài thành mảng có nhiều mảng chậm?
- 14. hiệu quả NumPy 2D mảng xây dựng từ mảng 1D
- 15. NumPy hình ảnh 3D mảng 2D
- 16. khắc mảng 2D numpy theo chỉ mục
- 17. Numpy 2D mảng Phép trừ theo hàng
- 18. Chuyển đổi mảng numpy thành tuple
- 19. Làm thế nào để chuyển đổi một mảng các chuỗi thành một mảng float trong numpy?
- 20. Chuyển đổi mảng NumPy thành cvMat cv2
- 21. Chuyển đổi mảng numpy thành chuỗi CSV và chuỗi CSV trở lại thành mảng cố định
- 22. Colorplot của mảng 2D matplotlib
- 23. Chuyển đổi Hash Map thành 2D Array
- 24. Làm cách nào để chuyển đổi chuỗi thành mảng mảng?
- 25. Mảng Javascript 2D
- 26. Chọn vào một mảng 2D
- 27. Chuyển đổi mảng int thành mảng char
- 28. 2d mảng số không
- 29. chuyển đổi mảng chuỗi thành mảng byte
- 30. Chuyển đổi mảng mảng thành một mảng của chuỗi
Chỉ cần chắc chắn rằng bạn không có 'np. inf'or 'np.nan' trong mảng của bạn, vì chúng có kết quả đáng ngạc nhiên. Ví dụ, 'np.array ([np.inf]). Astype (int)' kết quả đầu ra 'mảng ([- 9223372036854775808])'. – Garrett