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_likeMảng để được thay đổi kích thước.
new_shapeint hoặc tuple của intint or tuple of intHình dạng của mảng thay đổi kích thước.
Returnsreshaped_arrayndarrayreshaped_arrayndarrayMả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]]]
1import 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
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]]]
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.
Đầ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-
- Kích thước mới của mảng
- 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-
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-
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-
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