Hướng dẫn how do you make an array bigger in python? - làm thế nào để bạn làm cho một mảng lớn hơn trong python?

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 reshape 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 nên sử dụng

import numpy as np

p = np.array([ [1,2] , [3,4] ])

p = np.column_stack( [ p , [ 0 , 0 ],[0,0] ] )

p
Out[277]: 
array([[1, 2, 0, 0],
       [3, 4, 0, 0]])
0 hoặc
import numpy as np

p = np.array([ [1,2] , [3,4] ])

p = np.column_stack( [ p , [ 0 , 0 ],[0,0] ] )

p
Out[277]: 
array([[1, 2, 0, 0],
       [3, 4, 0, 0]])
1

import numpy as np

p = np.array([ [1,2] , [3,4] ])

p = np.column_stack( [ p , [ 0 , 0 ],[0,0] ] )

p
Out[277]: 
array([[1, 2, 0, 0],
       [3, 4, 0, 0]])

Mặc dù có vẻ nhanh hơn:

timeit np.column_stack( [ p , [ 0 , 0 ],[0,0] ] )
10000 loops, best of 3: 61.8 us per loop

timeit np.append(p, [[0,0],[0,0]],1)
10000 loops, best of 3: 48 us per loop

Và so sánh với

import numpy as np

p = np.array([ [1,2] , [3,4] ])

p = np.column_stack( [ p , [ 0 , 0 ],[0,0] ] )

p
Out[277]: 
array([[1, 2, 0, 0],
       [3, 4, 0, 0]])
2 và
import numpy as np

p = np.array([ [1,2] , [3,4] ])

p = np.column_stack( [ p , [ 0 , 0 ],[0,0] ] )

p
Out[277]: 
array([[1, 2, 0, 0],
       [3, 4, 0, 0]])
3 [append dường như vẫn là nhanh nhất]:

In [295]: z=np.zeros((2, 2), dtype=a.dtype)

In [296]: timeit np.c_[a, z]
10000 loops, best of 3: 47.2 us per loop

In [297]: timeit np.append(p, z,1)
100000 loops, best of 3: 13.1 us per loop

In [305]: timeit np.hstack((p,z))
10000 loops, best of 3: 20.8 us per loop

import numpy as np

p = np.array([ [1,2] , [3,4] ])

p = np.column_stack( [ p , [ 0 , 0 ],[0,0] ] )

p
Out[277]: 
array([[1, 2, 0, 0],
       [3, 4, 0, 0]])
4 [đó thậm chí còn nhanh hơn một chút so với
import numpy as np

p = np.array([ [1,2] , [3,4] ])

p = np.column_stack( [ p , [ 0 , 0 ],[0,0] ] )

p
Out[277]: 
array([[1, 2, 0, 0],
       [3, 4, 0, 0]])
1]:

In [307]: timeit np.concatenate((p, z), axis=1)
100000 loops, best of 3: 11.6 us per loop

Tôi hy vọng tất cả các bạn thích bài viết!

Cũng đọc- Hiểu kích thước mảng numpy trong Python
A NumPy array is a part of the NumPy library which is an array processing package.

import numpy as np
eg_arr = np.array([[1,2],[3,4]])
print(eg_arr)

Trong bài viết này, chúng ta sẽ học cách thay đổi kích thước của một mảng numpy trong Python.
Using np.array, we store an array of shape (2,2) and size 4 in the variable eg_arr.

Hướng dẫn how do you make an array bigger in python? - làm thế nào để bạn làm cho một mảng lớn hơn trong python?

Đầu tiên, hãy để hiểu về một mảng numpy là gì. Một mảng numpy là một phần của thư viện Numpy, một gói xử lý mảng.

Thay đổi kích thước của mảng numpy trong Python

Kích thước của một mảng numpy có thể được thay đổi bằng cách sử dụng hàm Resize () của thư viện Numpy.

numpy.ndarray.resize () lấy các tham số này-

  1. Kích thước mới của mảng
  2. Refcheck- Đó là một boolean kiểm tra số lượng tham chiếu. Nó kiểm tra xem bộ đệm mảng được tham chiếu đến bất kỳ đối tượng nào khác. Theo mặc định, nó được đặt thành true. Bạn cũng có thể đặt nó thành sai nếu bạn đã tham khảo mảng cho bất kỳ đối tượng nào khác.True. You can also set it to False if you haven’t referenced the array to any other object.

Trong quá trình thay đổi kích thước, nếu kích thước của mảng mới lớn hơn kích thước đã cho, thì mảng được lấp đầy bằng 0. Ngoài ra, nó thay đổi kích thước mảng tại chỗ.

Bây giờ hãy để hiểu nó với một số ví dụ.

Thay đổi kích thước của mảng với numpy.resize ()

Ví dụ 1 -

import numpy as np
cd = np.array([2,4,6,8])
cd.resize((3,4),refcheck=False)
print(cd)

Chạy mã này trực tuyến

Hàm thay đổi kích thước thay đổi hình dạng của mảng từ (4,) thành (3,4). Vì kích thước của mảng mới lớn hơn, mảng được lấp đầy bằng 0. Vì vậy, điều này cung cấp cho chúng ta đầu ra sau-
So this gives us the following output-

Hướng dẫn how do you make an array bigger in python? - làm thế nào để bạn làm cho một mảng lớn hơn trong python?

Ví dụ 2 -

import numpy as np 
cd2 = np.array([[1,2],[3,4]]) 
cd2.resize((5,6),refcheck=False)
print(cd2)

Chạy mã này trực tuyến

Hàm thay đổi kích thước thay đổi hình dạng của mảng từ (4,) thành (3,4). Vì kích thước của mảng mới lớn hơn, mảng được lấp đầy bằng 0. Vì vậy, điều này cung cấp cho chúng ta đầu ra sau-
Here’s the output-

Hướng dẫn how do you make an array bigger in python? - làm thế nào để bạn làm cho một mảng lớn hơn trong python?

import numpy as np
cd3=np.array([[1,2],[3,4]])
cd3.resize((2,1),refcheck=False)
print(cd3)

Ví dụ 2 -

Hàm thay đổi kích thước thay đổi mảng từ (2,2) thành (5,6) và lấp đầy phần còn lại của mảng với 0. Ở đây, đầu ra-

Hướng dẫn how do you make an array bigger in python? - làm thế nào để bạn làm cho một mảng lớn hơn trong python?

Chạy chương trình này trực tuyến

Ở đây, kích thước của mảng mới nhỏ hơn, vì vậy điều này cung cấp cho đầu ra sau-
Understanding NumPy array dimensions in Python