The secret to wholesale...

In the article about buying Thai goods, I introduced wholesale markets and cheap...

Restaurant business and the...

Customers are a special figure in restaurants. This may seem obvious, but...

Guide the clues to...

Japanese goods Known for putting quality first. However, in the past, due...

Online cosmetics business and...

Starting a business, especially online cosmetics business is the silver trend and...
HomeLập trìnhPythonchỉ các mảng...

chỉ các mảng có kích thước 1 mới có thể được chuyển đổi thành vô hướng Python


Trong Python, bạn có thể sử dụng numpy thư viện khi làm việc với mảng và một số khái niệm toán học như ma trận và đại số tuyến tính.

Nhưng giống như mọi khía cạnh khác của việc học và làm việc với một ngôn ngữ lập trình, sai sót là không thể tránh khỏi.

Trong bài viết này, bạn sẽ tìm hiểu cách khắc phục lỗi “TypeError: only size-1 arrays can be convert to Python scalars” lỗi thường xảy ra khi sử dụng numpy thư viện.

Điều gì gây ra TypeError: only size-1 arrays can be converted to Python scalars Lỗi trong Python?

Lỗi “TypeError: only size-1 arrays can be convert to Python scalars” xuất hiện khi chúng ta chuyển một mảng sang một phương thức chỉ chấp nhận một tham số.

Đây là một ví dụ:

import numpy as np

y = np.array([1, 2, 3, 4])
x = np.int(y)

print(x)

# TypeError: only size-1 arrays can be converted to Python scalars

Đoạn mã trên đưa ra lỗi “TypeError: only size-1 arrays can be convert to Python scalars” vì chúng ta đã chuyển y mảng vào NumPy int() phương pháp. Phương thức chỉ có thể chấp nhận một tham số.

Đọc thêm  Hướng dẫn từ điển Python – Cách lặp lại, sao chép và hợp nhất từ ​​điển trong Python 3.9

Trong phần tiếp theo, bạn sẽ thấy một số giải pháp cho lỗi này.

Cách khắc phục TypeError: only size-1 arrays can be converted to Python scalars Lỗi trong Python

Có hai giải pháp chung để sửa lỗi “TypeError: only size-1 arrays can be convert to Python scalars”.

Giải pháp số 1 – Sử dụng np.vectorize() Chức năng

Các np.vectorize() chức năng có thể chấp nhận một chuỗi/một mảng làm tham số của nó. Khi in ra, nó trả về một mảng.

Đây là một ví dụ:

import numpy as np

vector = np.vectorize(np.int_)
y = np.array([2, 4, 6, 8])
x = vector(y)

print(x)
# [2, 4, 6, 8]

Trong ví dụ trên, chúng tôi đã tạo một vector biến sẽ “vectơ hóa” bất kỳ tham số nào được truyền cho nó: np.vectorize(np.int_).

Sau đó, chúng tôi đã tạo một mảng và lưu trữ nó trong y Biến đổi: np.array([2, 4, 6, 8]).

Sử dụng vector biến chúng tôi đã tạo ban đầu, chúng tôi đã chuyển y mảng như một tham số: x = vector(y).

Khi in ra, chúng ta có mảng — [2, 4, 6, 8].

Giải pháp số 2 – Sử dụng map() Chức năng

Các map() hàm chấp nhận hai tham số trong trường hợp này — phương thức NumPy và mảng.

import numpy as np

y = np.array([2, 4, 6, 8])
x = np.array(list(map(np.int_, y)))

print(x)
# [2, 4, 6, 8]

Trong ví dụ trên, chúng tôi đã lồng các map() chức năng trong một list() phương pháp để chúng tôi lấy lại mảng dưới dạng danh sách chứ không phải đối tượng bản đồ.

Đọc thêm  Quét web bằng Python – Cách cạo trang web thương mại điện tử bằng Beautiful Soup và Pandas

Giải pháp số 3 – Sử dụng astype() Phương pháp

Chúng ta có thể sử dụng astype() phương pháp để chuyển đổi một mảng NumPy thành số nguyên. Điều này sẽ ngăn lỗi “TypeError: only size-1 arrays can be convert to Python scalars” xuất hiện.

Đây là cách:

import numpy as np

vector = np.vectorize(np.int_)
y = np.array([2, 4, 6, 8])
x = y.astype(int)

print(x)
# [2 4 6 8]

Tóm lược

Trong bài viết này, chúng ta đã nói về lỗi “TypeError: only size-1 arrays can be convert to Python scalars” trong Python.

Nó được nâng lên khi chúng ta chuyển một mảng làm tham số cho một numpy phương thức chỉ chấp nhận một tham số.

Để khắc phục lỗi, chúng tôi đã sử dụng các phương pháp khác nhau như np.vectorize() chức năng, map() chức năng, và astype() phương pháp.

Chúc mừng mã hóa!



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status