Hướng dẫn can we change size of array in python? - chúng ta có thể thay đổi kích thước của mảng trong python không?

Để thay đổi kích thước của một mảng trong Python, hãy sử dụng phương pháp định hình lại của thư viện Numpy.

reshape[a,d]

  • Tham số đầu tiên [a] là tên của mảng [vectơ hoặc ma trận] được chuyển đổi.
  • Tham số thứ hai [d] là một số hoặc một tuple cho biết số lượng hàng và cột của mảng mới.

Hàm định hình lại thay đổi kích thước của mảng mà không xóa các phần tử.reshape function changes the size of the array without deleting the elements.

Ghi chú. Kích thước mới phải bằng tính điểm của mảng cũ. Ví dụ: nếu một vectơ có 10 phần tử, nó có thể được chuyển thành ma trận 5x2 hoặc 2x5. Nó không thể được tạo thành ma trận 3x3 hoặc bất cứ thứ gì khác.. The new size must equal the cardinality of the old array. For example, if a vector has 10 elements, it can be transformed into a 5x2 or 2x5 matrix. It cannot be made into a 3x3 matrix or anything else.

Thí dụ

Ví dụ 1 [vectơ đến ma trận]

Tạo một mảng gồm 10 phần tử bằng phương thức mảng.array method.

Nhập Numpy dưới dạng NP X = NP.Array [[1,2,3,4,5,6,7,8,9,10]]]
x=np.array[[1,2,3,4,5,6,7,8,9,10]]

Mảng X mới có một kích thước. Nó là một vector.

Thay đổi mảng thành mảng 5x2 bằng cách sử dụng định hình lại chức năng.reshape.

y=np.reshape[x,[5,2]]

Mảng Y mới có hai chiều.

>>> mảng y [[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]]]
array[[[ 1, 2],
[ 3, 4],
[ 5, 6],
[ 7, 8],
[ 9, 10]]]

Nó có các yếu tố tương tự như vector X nhưng được sắp xếp trong một ma trận.

Ví dụ 2

Để có được kết quả tương tự, hãy sử dụng định hình lại làm phương pháp.

y = x.reshape [[5,2]]

Kết quả cuối cùng là như nhau.

Ví dụ 3 [từ ma trận đến vector]

Tạo ma trận 2x5

Nhập Numpy dưới dạng NP X = NP.Array [[1,2,3,4,5], [6,7,8,9,10]]]]]
x=np.array[[[1,2,3,4,5],[6,7,8,9,10]]]

Mảng X có hai chiều

>>> x mảng [[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]]]
array[[[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10]]]

Chuyển đổi ma trận thành một vectơ.

z=np.reshape[x,10]

Mảng mới có một kích thước.

>>> Z mảng [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]]
array[[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]

//how.okpedia.org/en/python/how-to-chtange-array-in-in-in-python

Trong Python, nếu đầu vào là một mảng numpy, bạn có thể sử dụng np.lib.pad để pad zeros xung quanh nó -

import numpy as np

A = np.array[[[1, 2 ],[2, 3]]]   # Input
A_new = np.lib.pad[A, [[0,1],[0,2]], 'constant', constant_values=[0]] # Output

Chạy mẫu -

In [7]: A  # Input: A numpy array
Out[7]: 
array[[[1, 2],
       [2, 3]]]

In [8]: np.lib.pad[A, [[0,1],[0,2]], 'constant', constant_values=[0]]
Out[8]: 
array[[[1, 2, 0, 0],
       [2, 3, 0, 0],
       [0, 0, 0, 0]]]  # Zero padded numpy array

Nếu bạn không muốn thực hiện toán học về số 0 số không, bạn có thể để mã thực hiện nó cho bạn đã đưa ra kích thước mảng đầu ra -

In [29]: A
Out[29]: 
array[[[1, 2],
       [2, 3]]]

In [30]: new_shape = [3,4]

In [31]: shape_diff = np.array[new_shape] - np.array[A.shape]

In [32]: np.lib.pad[A, [[0,shape_diff[0]],[0,shape_diff[1]]], 
                              'constant', constant_values=[0]]
Out[32]: 
array[[[1, 2, 0, 0],
       [2, 3, 0, 0],
       [0, 0, 0, 0]]]

Hoặc, bạn có thể bắt đầu với một mảng đầu ra khởi tạo bằng không và sau đó đặt lại các phần tử đầu vào đó từ A -

In [38]: A
Out[38]: 
array[[[1, 2],
       [2, 3]]]

In [39]: A_new = np.zeros[new_shape,dtype = A.dtype]

In [40]: A_new[0:A.shape[0],0:A.shape[1]] = A

In [41]: A_new
Out[41]: 
array[[[1, 2, 0, 0],
       [2, 3, 0, 0],
       [0, 0, 0, 0]]]

Trong Matlab, bạn có thể sử dụng padarray -

A_new  = padarray[A,[1 2],'post']

Chạy mẫu -

>> A
A =
     1     2
     2     3
>> A_new = padarray[A,[1 2],'post']
A_new =
     1     2     0     0
     2     3     0     0
     0     0     0     0

numpy.resize [a, new_shape] [nguồn]#resize[a, new_shape][source]#

Trả về một mảng mới với hình dạng được chỉ định.

Nếu mảng mới lớn hơn mảng gốc, thì mảng mới được lấp đầy với các bản sao lặp lại của a. Lưu ý rằng hành vi này khác với a.resize [new_shape] lấp đầy bằng các số không thay vì các bản sao lặp lại của a.

Parametersaarray_likeaarray_like

Mảng để được thay đổi kích thước.

new_shapeint hoặc tuple của intint or tuple of int

Hình dạng của mảng thay đổi kích thước.

Returnsreshaped_arrayndarrayreshaped_arrayndarray

Mảng mới được hình thành từ dữ liệu trong mảng cũ, lặp lại nếu cần thiết để điền vào số lượng các phần tử cần thiết. Dữ liệu được lặp lại lặp lại trên mảng theo thứ tự C.

Ghi chú

Khi tổng kích thước của mảng không thay đổi

In [7]: A  # Input: A numpy array
Out[7]: 
array[[[1, 2],
       [2, 3]]]

In [8]: np.lib.pad[A, [[0,1],[0,2]], 'constant', constant_values=[0]]
Out[8]: 
array[[[1, 2, 0, 0],
       [2, 3, 0, 0],
       [0, 0, 0, 0]]]  # Zero padded numpy array
0 nên được sử dụng. Trong hầu hết các trường hợp khác hoặc lập chỉ mục [để giảm kích thước] hoặc đệm [để tăng kích thước] có thể là một giải pháp phù hợp hơn.

Cảnh báo: Chức năng này không xem xét các trục riêng biệt, tức là nó không áp dụng phép nội suy/ngoại suy. Nó lấp đầy mảng trả về với số lượng các phần tử cần thiết, lặp lại trên một thứ tự C, coi thường các trục [và đạp xe trở lại từ đầu nếu hình dạng mới lớn hơn]. Do đó, chức năng này không phù hợp để thay đổi kích thước hình ảnh hoặc dữ liệu trong đó mỗi trục đại diện cho một thực thể riêng biệt và riêng biệt.not consider axes separately, i.e. it does not apply interpolation/extrapolation. It fills the return array with the required number of elements, iterating over a in C-order, disregarding axes [and cycling back from the start if the new shape is larger]. This functionality is therefore not suitable to resize images, or data where each axis represents a separate and distinct entity.

Ví dụ

>>> a=np.array[[[0,1],[2,3]]]
>>> np.resize[a,[2,3]]
array[[[0, 1, 2],
       [3, 0, 1]]]
>>> np.resize[a,[1,4]]
array[[[0, 1, 2, 3]]]
>>> np.resize[a,[2,4]]
array[[[0, 1, 2, 3],
       [0, 1, 2, 3]]]

Bạn có thể thay đổi kích thước mảng không?

Khi một mảng đã được tạo ra, kích thước của nó không thể thay đổi.Thay vào đó, một mảng chỉ có thể được "thay đổi kích thước" bằng cách tạo một mảng mới với kích thước phù hợp và sao chép các phần tử từ mảng hiện có sang mảng mới.. Instead, an array can only be "resized" by creating a new array with the appropriate size and copying the elements from the existing array to the new one.

Chúng ta có thể thay đổi kích thước của mảng numpy không?

Không có việc chuyển đổi kích thước của một mảng numpy trong Python.Một mảng numpy chỉ đơn giản là một phần của RAM của bạn.Bạn không thể nối vào nó theo nghĩa theo nghĩa đen là thêm byte vào cuối mảng, nhưng bạn có thể tạo một mảng khác và sao chép tất cả dữ liệu [đó là những gì NP. Append [] hoặc NP.. A numpy array is simply a section of your RAM. You can't append to it in the sense of literally adding bytes to the end of the array, but you can create another array and copy over all the data [which is what np. append[], or np.

Làm thế nào để bạn kích thước một mảng trong Python?

Sử dụng phương thức Len [] để trả về chiều dài của một mảng [số lượng phần tử trong một mảng]. [the number of elements in an array].

Bạn có thể chỉnh sửa một mảng trong Python không?

Làm thế nào để cập nhật một phần tử mảng trong Python?Trong Python, để cập nhật phần tử trong mảng tại chỉ mục đã cho, chúng tôi sẽ chỉ định lại một giá trị mới cho chỉ mục được chỉ định mà chúng tôi muốn cập nhật và vòng lặp For được sử dụng để lặp lại giá trị.to update the element in the array at the given index we will reassign a new value to the specified index which we want to update, and the for loop is used to iterate the value.

Bài Viết Liên Quan

Chủ Đề