Hướng dẫn what is size 1 array in python? - mảng kích thước 1 trong python là gì?

Hướng dẫn what is size 1 array in python? - mảng kích thước 1 trong python là gì?

Trong Python, bạn có thể sử dụng thư viện

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]
1 khi làm việc với các mảng và các khái niệm toán học nhất định 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 ngôn ngữ lập trình, các lỗi là không thể tránh khỏi.

Trong bài viết này, bạn sẽ tìm hiểu cách sửa lỗi "Kiểu hàng: Chỉ có thể chuyển đổi các mảng kích thước-1 thành lỗi Python Scalar" mà chủ yếu xảy ra khi sử dụng thư viện

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]
1.

Điều gì gây ra lỗi 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]3 trong Python?

Có thể chuyển đổi các mảng "Kiểu hàng: Chỉ có thể chuyển đổi các mảng Kích thước-1 thành lỗi Python Scalar" khi chúng ta chuyển trong 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

Mã ở trên ném "Mảng kích thước-1 có thể được chuyển đổi thành lỗi vô hướng Python" vì chúng tôi đã chuyển mảng

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]
4 sang phương thức
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]
5 numpy. Phương thức chỉ có thể chấp nhận một tham số.

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

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 hàm 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]6

Hàm

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]
6 có thể chấp nhận một chuỗi/một mảng làm tham số của nó. Khi được 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]

Mã ở trên ném "Mảng kích thước-1 có thể được chuyển đổi thành lỗi vô hướng Python" vì chúng tôi đã chuyển mảng

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]
4 sang phương thức
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]
5 numpy. Phương thức chỉ có thể chấp nhận một tham số.

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

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 hàm

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]
6

Hàm 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]6 có thể chấp nhận một chuỗi/một mảng làm tham số của nó. Khi được in ra, nó trả về một mảng.

Trong ví dụ trên, chúng tôi đã tạo một biến

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]
8 sẽ "vector hóa" bất kỳ tham số nào được truyền cho nó:
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]
9.

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]

Sau đó, chúng tôi đã tạo một mảng và lưu trữ nó trong biến

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]
4:
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]
1.

Sử dụng biến 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]8 mà chúng tôi đã tạo ban đầu, chúng tôi đã vượt qua mảng 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]4 dưới dạng tham số: 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]4.

Khi được in ra, chúng tôi đã nhận được 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]
5.

Giải pháp số 2 - Sử dụng hàm

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]
6

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]

Hàm 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]6 chấp nhận hai tham số trong trường hợp này - phương thức numpy và mảng.

Trong ví dụ trên, chúng tôi lồng chức nă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]
6 theo phương thức
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]
9 để chúng tôi nhận được mảng được trả lại như một danh sách chứ không phải đối tượng bản đồ.

Giải pháp số 3 - Sử dụng phương pháp

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]
0

Chúng ta có thể sử dụng phương pháp

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]
0 để chuyển đổi một mảng numpy thành số nguyên. Điều này sẽ ngăn chặn các mảng "Kiểu hàng: Chỉ có thể chuyển đổi các mảng kích thước-1 thành lỗi vô hướng Python".

Đây là cách:



Bản tóm tắt

Tôi có mã python như vậy:

import numpy as np
import matplotlib.pyplot as plt

def f(x):
    return np.int(x)

x = np.arange(1, 15.1, 0.1)
plt.plot(x, f(x))
plt.show()

Và lỗi đó:

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

Làm thế nào tôi có thể sửa chữa nó?

Hỏi ngày 17 tháng 4 năm 2016 lúc 18:21Apr 17, 2016 at 18:21

Lỗi "Chỉ có thể chuyển đổi các mảng độ dài-1 thành vô hướng Python" được nâng lên khi hàm này mong đợi một giá trị duy nhất nhưng bạn vượt qua một mảng thay thế.

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]
6 là bí danh cho
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]
7 tích hợp, được không phản đối trong Numpy v1.20. Đối số cho INT nên là một vô hướng và nó không chấp nhận các đối tượng giống như mảng. Nói chung, nếu bạn muốn áp dụng một hàm cho từng phần tử của mảng, bạn có thể sử dụng
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]
8:

import numpy as np
import matplotlib.pyplot as plt

def f(x):
    return int(x)
f2 = np.vectorize(f)
x = np.arange(1, 15.1, 0.1)
plt.plot(x, f2(x))
plt.show()

Bạn có thể bỏ qua định nghĩa của f (x) và chỉ cần truyền hàm

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]
7 cho hàm vectorize:
import numpy as np
import matplotlib.pyplot as plt

def f(x):
    return np.int(x)

x = np.arange(1, 15.1, 0.1)
plt.plot(x, f(x))
plt.show()
0.

Lưu ý rằng

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]
8 chỉ là một hàm tiện lợi và về cơ bản là một vòng lặp. Điều đó sẽ không hiệu quả so với các mảng lớn. Bất cứ khi nào bạn có khả năng, hãy sử dụng các hàm hoặc phương thức thực sự được vector hóa (như
import numpy as np
import matplotlib.pyplot as plt

def f(x):
    return np.int(x)

x = np.arange(1, 15.1, 0.1)
plt.plot(x, f(x))
plt.show()
2 như @FFT gợi ý).

Đã trả lời ngày 17 tháng 4 năm 2016 lúc 18:32Apr 17, 2016 at 18:32

Hướng dẫn what is size 1 array in python? - mảng kích thước 1 trong python là gì?

Ayhanayhanayhan

67.1K18 Huy hiệu vàng173 Huy hiệu bạc192 Huy hiệu Đồng18 gold badges173 silver badges192 bronze badges

5

Sử dụng:

x.astype(int)

Đây là tài liệu tham khảo.

Đã trả lời ngày 20 tháng 2 năm 2017 lúc 17:26Feb 20, 2017 at 17:26

FftfftFFT

8098 Huy hiệu bạc15 Huy hiệu Đồng8 silver badges15 bronze badges

1

import numpy as np
import matplotlib.pyplot as plt

def f(x):
    return np.int(x)

x = np.arange(1, 15.1, 0.1)
plt.plot(x, f(x))
plt.show()
3 nên giải quyết điều này. Về cơ bản, nó thay đổi cột DataFrame thành một danh sách.

Hướng dẫn what is size 1 array in python? - mảng kích thước 1 trong python là gì?

Suraj Rao

29.2k11 Huy hiệu vàng96 Huy hiệu bạc103 Huy hiệu đồng11 gold badges96 silver badges103 bronze badges

Đã trả lời ngày 10 tháng 2 năm 2021 lúc 6:21Feb 10, 2021 at 6:21

Hướng dẫn what is size 1 array in python? - mảng kích thước 1 trong python là gì?

Hãy lưu ý những gì được in cho

import numpy as np
import matplotlib.pyplot as plt

def f(x):
    return np.int(x)

x = np.arange(1, 15.1, 0.1)
plt.plot(x, f(x))
plt.show()
4. Bạn đang cố gắng chuyển đổi một mảng (về cơ bản chỉ là một danh sách) thành một int.
import numpy as np
import matplotlib.pyplot as plt

def f(x):
    return np.int(x)

x = np.arange(1, 15.1, 0.1)
plt.plot(x, f(x))
plt.show()
5 sẽ là một mảng của một số duy nhất, mà tôi cho rằng Numpy chỉ coi là một chiếc phao. Bạn có thể làm điều này, nhưng đó không phải là một giải pháp hoàn toàn độc hại.

EDIT: Tôi đã tham gia vào một bài đăng một vài tuần trước, nơi Numpy chậm hơn một hoạt động so với tôi mong đợi và tôi nhận ra rằng tôi đã rơi vào một suy nghĩ mặc định rằng Numpy luôn là cách để đi theo tốc độ. Vì câu trả lời của tôi không sạch sẽ như của Ayhan, tôi nghĩ rằng tôi sẽ sử dụng không gian này để cho thấy rằng đây là một trường hợp khác để minh họa rằng

import numpy as np
import matplotlib.pyplot as plt

def f(x):
    return np.int(x)

x = np.arange(1, 15.1, 0.1)
plt.plot(x, f(x))
plt.show()
6 chậm hơn khoảng 10% so với xây dựng danh sách ở Python. Tôi không biết đủ về Numpy để giải thích tại sao đây là trường hợp nhưng có lẽ ai đó làm?

import numpy as np
import matplotlib.pyplot as plt
import datetime

time_start = datetime.datetime.now()

# My original answer
def f(x):
    rebuilt_to_plot = []
    for num in x:
        rebuilt_to_plot.append(np.int(num))
    return rebuilt_to_plot

for t in range(10000):
    x = np.arange(1, 15.1, 0.1)
    plt.plot(x, f(x))

time_end = datetime.datetime.now()

# Answer by ayhan
def f_1(x):
    return np.int(x)

for t in range(10000):
    f2 = np.vectorize(f_1)
    x = np.arange(1, 15.1, 0.1)
    plt.plot(x, f2(x))

time_end_2 = datetime.datetime.now()

print time_end - time_start
print time_end_2 - time_end

Đã trả lời ngày 17 tháng 4 năm 2016 lúc 18:30Apr 17, 2016 at 18:30

Roganjoshroganjoshroganjosh

12.1k4 Huy hiệu vàng29 Huy hiệu bạc44 Huy hiệu đồng4 gold badges29 silver badges44 bronze badges

Trong trường hợp này, đầu ra phải là một giá trị

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]
7 tròn.

import numpy as np

arr = np.array([2.34, 2.56, 3.12])
output = np.round(arr).astype(int)

print(output)
# array([2, 3, 3])

Đã trả lời ngày 11 tháng 8 năm 2021 lúc 9:32Aug 11, 2021 at 9:32

Hướng dẫn what is size 1 array in python? - mảng kích thước 1 trong python là gì?

Niek Tuytelniek Tuytelniek tuytel

7916 Huy hiệu bạc18 Huy hiệu đồng6 silver badges18 bronze badges

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]
0

Sử dụng NP.Array (Danh sách (MAP (NP.INT, X))) sẽ hội tụ mảng Numpy thành giá trị tỷ lệ và khắc phục sự cố để biết thêm chi tiết, hãy truy cập bài viết chi tiết này.

Đã trả lời ngày 22 tháng 2 lúc 13:58Feb 22 at 13:58

Hướng dẫn what is size 1 array in python? - mảng kích thước 1 trong python là gì?

Python kích thước mảng là gì?

Số lượng kích thước và vật phẩm trong một mảng được xác định bởi hình dạng của nó, đây là một bộ số của N số nguyên không âm chỉ xác định kích thước của từng chiều. Loại mục trong mảng được chỉ định bởi một đối tượng loại dữ liệu riêng biệt (DTYPE), một trong số đó được liên kết với mỗi ndarray.a tuple of N non-negative integers that specify the sizes of each dimension. The type of items in the array is specified by a separate data-type object (dtype), one of which is associated with each ndarray.

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

"TypeError: Chỉ các mảng kích thước-1 mới có thể được chuyển đổi thành vô hướng Python" có nghĩa là gì? Bạn có khả năng phải đối mặt với kiểu mẫu ở trên trong khi làm việc với Numpy và Matplotlib. pyplot. Lỗi này phát sinh khi bạn chuyển một mảng vào một hàm đang mong đợi một giá trị duy nhất (nghĩa là, giá trị vô hướng).This error arises when you pass an array into a function that is expecting a single value (i.e., scalar value).

Nó có nghĩa là trục 1 trong numpy là gì?

Trong một mảng numpy đa chiều, trục 1 là trục thứ hai.Khi chúng ta nói về các mảng 2-D và đa chiều, Trục 1 là trục chạy theo chiều ngang trên các cột.the second axis. When we're talking about 2-d and multi-dimensional arrays, axis 1 is the axis that runs horizontally across the columns.

1D trong Python là gì?

Loại chức năng 1D, iFunction1d là loại chức năng đơn giản nhất.Nó lấy một bộ giá trị x 1D và yêu cầu các giá trị hàm được trả về tại các điểm đó dưới dạng một mảng numpy.the simplest function type. It takes a 1D set of x values and requires the function values to be returned at those points as a numpy array.