Tôi có một mảng 2-D Numpy trong đó một cột có giá trị Boolean, tức là True
/False
. Tôi muốn chuyển nó thành số nguyên 1
và 0
tương ứng, làm cách nào tôi có thể thực hiện?Cách chuyển đổi từ mảng boolean thành mảng int trong python
Ví dụ: data[0::,2]
của tôi là boolean, tôi đã cố gắng
data[0::,2]=int(data[0::,2])
, nhưng nó được đem lại cho tôi lỗi:
TypeError: only length-1 arrays can be converted to Python scalars
My 5 dòng đầu tiên của mảng là:
[['0', '3', 'True', '22', '1', '0', '7.25', '0'],
['1', '1', 'False', '38', '1', '0', '71.2833', '1'],
['1', '3', 'False', '26', '0', '0', '7.925', '0'],
['1', '1', 'False', '35', '1', '0', '53.1', '0'],
['0', '3', 'True', '35', '0', '0', '8.05', '0']]
Đây không thể là mảng 2D, vì trong mảng 2D, tất cả các phần tử đều có cùng loại. Có lẽ, bạn có một mảng có cấu trúc. Bạn có thể, xin vui lòng, hiển thị một vài hàng đầy đủ từ nó và 'dtype' của nó? – kirelagin
OK, những dấu ngoặc kép đó sẽ gợi ý cho bạn rằng bạn đã có một chuỗi các chuỗi. Vì vậy, một lần nữa, trong tất cả các yếu tố của một mảng 2D phải có cùng loại. Bạn cần có [mảng có cấu trúc] (http://docs.scipy.org/doc/numpy/user/basics.rec.html) hoặc chỉ cần loại bỏ các thông số sần và sử dụng các danh sách Python thông thường. Tại sao bạn cần numpy và mục tiêu cuối cùng của bạn là gì? – kirelagin
Thực ra tôi đang theo một hướng dẫn về dự án học máy sử dụng python, và khi tôi mới bắt đầu với python, tôi đang đối mặt với những khó khăn này, nó yêu cầu mảng numpy. Vì vậy, nó sẽ là tuyệt vời nếu bạn có thể cho tôi biết làm thế nào để chuyển đổi toàn bộ mảng này của chuỗi để nổi vì nó là rõ ràng rằng nó có thể được chuyển đổi để nổi (điều trị đúng như 1 và fase là 0). –