Hướng dẫn can only convert an array of size 1 to a python scalar in pytorch? - chỉ có thể chuyển đổi một mảng có kích thước 1 thành một vô hướng python trong pytorch?
Tôi muốn lặp qua các hàng của một khung dữ liệu, trong trường hợp của tôi để tính toán xếp hạng sức mạnh cho một số đội thể thao. Show Các cột DataFrame Đoạn mã mã tương ứng trông như sau:
Mã hoạt động tốt cho vài hàng đầu tiên. Tuy nhiên, tôi sau đó gặp phải lỗi, luôn luôn cho cùng một hàng, mặc dù tôi không thể thấy các hàng sẽ khác với các hàng khác như thế nào.
Tôi rất đánh giá cao nó nếu bạn có thể giúp tôi (a) hiểu nguyên nhân gây ra lỗi và (b) cách xử lý chúng. Vì đây là bài viết đầu tiên của tôi về Stackoverflow, tôi vẫn chưa nhận thức đầy đủ về các hoạt động đăng bài phổ biến của diễn đàn. Xin vui lòng cho tôi biết nếu có bất cứ điều gì tôi có thể cải thiện về bài viết của mình. Cám ơn rất nhiều! Một lỗi bạn có thể gặp phải khi sử dụng Python là: TypeError: only size-1 arrays can be converted to Python scalars
Lỗi này xảy ra thường xuyên nhất khi bạn cố gắng sử dụng np.int () để chuyển đổi một mảng giá trị float numpy thành một mảng các giá trị số nguyên.np.int() to convert a NumPy array of float values to an array of integer values. Tuy nhiên, hàm này chỉ chấp nhận một giá trị duy nhất thay vì một mảng các giá trị. Thay vào đó, bạn nên sử dụng X.Asype (int) để chuyển đổi một mảng giá trị nổi thành một mảng các giá trị số nguyên vì hàm này có thể chấp nhận một mảng.x.astype(int) to convert a NumPy array of float values to an array of integer values because this function is able to accept an array. Ví dụ sau đây cho thấy cách khắc phục lỗi này trong thực tế. Cách tái tạo lỗiGiả sử chúng ta tạo ra mảng giá trị nổi sau đây: import numpy as np #create NumPy array of float values x = np.array([3, 4.5, 6, 7.7, 9.2, 10, 12, 14.1, 15]) Bây giờ giả sử chúng ta cố gắng chuyển đổi mảng giá trị float này thành một mảng các giá trị số nguyên: #attempt to convert array to integer values
np.int(x)
TypeError: only size-1 arrays can be converted to Python scalars
Chúng tôi nhận được một kiểu mẫu vì hàm np.int () chỉ chấp nhận các giá trị đơn, không phải là một mảng các giá trị.TypeError because the np.int() function only accepts single values, not an array of values. Cách khắc phục lỗiĐể chuyển đổi một mảng giá trị nổi thành giá trị số nguyên, thay vào đó chúng ta có thể sử dụng mã sau: #convert array of float values to integer values
x.astype(int)
array([ 3, 4, 6, 7, 9, 10, 12, 14, 15])
Lưu ý rằng mảng các giá trị đã được chuyển đổi thành các số nguyên và chúng tôi không nhận được bất kỳ lỗi nào vì hàm ASTYPE () có thể xử lý một mảng các giá trị.astype() function is able to handle an array of values. Lưu ý: Bạn có thể tìm thấy tài liệu đầy đủ cho hàm ASTYPE () ở đây.: You can find the complete documentation for the astype() function here. Tài nguyên bổ sungCác hướng dẫn sau đây giải thích cách khắc phục các lỗi phổ biến khác trong Python: Cách sửa KeyError trong Pandas Cách sửa: ValueError: Không thể chuyển đổi Float Nan thành Integer Cách sửa: ValueError: Toán tử không thể được phát cùng với các hình dạng Làm cách nào để sửa lỗi chỉ có thể chuyển đổi các mảng kích thước 1 thành vô hướng Python?Có hai giải pháp chung để sửa lỗi "TypeError: Chỉ có thể chuyển đổi các mảng kích thước-1 thành lỗi vô hướng Python" ... Giải pháp số 1 - Sử dụng NP.hàm vectorize ()..... Giải pháp #2 - Sử dụng hàm Map ()..... Giải pháp số 3 - Sử dụng phương thức ASTYPE () .. Làm thế nào để bạn chuyển đổi một mảng thành một danh sách trong Python?mảng] các đối tượng có thể được chuyển đổi thành một danh sách với hàm Tolist ().Hàm Tolist () không chấp nhận bất kỳ đối số nào.Nếu mảng là một chiều, một danh sách với các phần tử mảng được trả về.Đối với một mảng đa chiều, một danh sách lồng nhau được trả về.with the tolist() function. The tolist() function doesn't accept any arguments. If the array is one-dimensional, a list with the array elements is returned. For a multi-dimensional array, a nested list is returned.
Vô hướng Python là gì?Trong Numpy, một vô hướng là bất kỳ đối tượng nào bạn đặt trong một mảng.Nó tương tự như khái niệm trong đại số tuyến tính, một yếu tố của một trường được sử dụng để xác định không gian vectơ.Numpy đảm bảo tất cả các vô hướng trong một mảng có giống nhau.Không thể một vô hướng có loại Int32, các vô hướng khác có loại Int64.any object that you put in an array. It's similar to the concept in linear algebra, an element of a field which is used to define a vector space. NumPy ensures all scalars in an array have same types. It's impossible one scalar having type int32, the other scalars having type int64. |