Mở rộng về những gì người khác đã nói tôi sẽ đưa ra một ví dụ ngắn.
Nếu bạn có một mảng 1D ...
>>> import numpy as np
>>> x = np.arange[4] # array[[0, 1, 2, 3]]
>>> x[::-1] # returns a view
Out[1]:
array[[3, 2, 1, 0]]
Nhưng nếu bạn đang làm việc với một mảng 2D ...
>>> x = np.arange[10].reshape[2, 5]
>>> x
Out[2]:
array[[[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]]]
>>> x[::-1] # returns a view:
Out[3]: array[[[5, 6, 7, 8, 9],
[0, 1, 2, 3, 4]]]
Điều này không thực sự đảo ngược ma trận.
Nên sử dụng np.flip để thực sự đảo ngược các yếu tố
>>> np.flip[x]
Out[4]: array[[[9, 8, 7, 6, 5],
[4, 3, 2, 1, 0]]]
Nếu bạn muốn in các yếu tố của Ma trận sử dụng từng người một cùng với Flip
>>> for el in np.flip[x].flat:
>>> print[el, end = ' ']
9 8 7 6 5 4 3 2 1 0
Trong bài viết này, chúng tôi sẽ thảo luận về các cách khác nhau để đảo ngược nội dung của mảng Numpy 1D và 2D [cột & hàng] bằng toán tử NP.FLIP [] và [].
Trước hết, mô -đun nhập khẩu Numpy, tức là.
import numpy as np
Bây giờ giả sử chúng ta có một mảng numpy, tức là.
# Create a Numpy array from list of numbers arr = np.array[[6, 1, 4, 2, 18, 9, 3, 4, 2, 8, 11]]
Bây giờ, hãy để Lừa đảo ngược các nội dung của mảng Numpy được tạo ra ở trên bằng cách sử dụng một thủ thuật nhỏ,
# Get a reversed view of numpy array reversedArr = arr[::-1] print['Reversed Array : ', reversedArr]
Đầu ra:
Reversed Array : [11 8 2 4 3 9 18 2 4 1 6]
Nó đã hoạt động như thế nào?
Trong mảng numpy, chúng tôi sử dụng toán tử [] với cú pháp sau,
arr[start:end:stepsize]
Về cơ bản, nó sẽ chọn các yếu tố từ đầu đến cuối với kích thước bước như Stepize. Chúng tôi đã không cung cấp tham số bắt đầu và kết thúc, do đó theo mặc định, nó đã chọn mảng hoàn chỉnh. Ngoài ra, kích thước bước là -1, do đó nó đã chọn các yếu tố từ cuối cùng đến đầu tiên.stepsize. We did not provided start and end parameter, therefore by default it picked the complete array. Also, the step size was -1, therefore it selected the elements from last to first.
Mảng đảo ngược chỉ xem
đảo ngược chỉ là một cái nhìn đảo ngược của mảng. Nó có nghĩa là bất kỳ sửa đổi nào trong chế độ xem này đảo ngược cũng sẽ được phản ánh trong mảng ban đầu, tức là. is just a reversed view of the arr. It means any modification in this view reversedArr will also be reflected in the original array arr i.e.
# Modification in reversed array will be reflected in original array too reversedArr[1] = 100 print['Modified Reversed Array : ', reversedArr] print['Original Array : ', arr]
Đầu ra:
>>> x = np.arange[10].reshape[2, 5]
>>> x
Out[2]:
array[[[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]]]
>>> x[::-1] # returns a view:
Out[3]: array[[[5, 6, 7, 8, 9],
[0, 1, 2, 3, 4]]]
0Quảng cáo
Mảng Numpy ngược bằng np.flip []
Mô -đun Numpy Python cung cấp một hàm để lật nội dung của mảng numpy dọc theo các trục khác nhau, tức là.
>>> x = np.arange[10].reshape[2, 5]
>>> x
Out[2]:
array[[[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]]]
>>> x[::-1] # returns a view:
Out[3]: array[[[5, 6, 7, 8, 9],
[0, 1, 2, 3, 4]]]
1Tranh luận:
- mảng: mảng numpy
- Trục: Trục dọc theo đó cần lật / đảo ngược nội dung.
- Nếu không có: lật / đảo ngược nội dung dọc theo tất cả các trục của mảng đầu vào
Hãy để hiểu biết bởi các ví dụ,
Mảng Numpy 1D ngược bằng NP.FLIP []
Giả sử chúng ta có một mảng numpy, tức là.
# Create a Numpy array from list of numbers arr = np.array[[6, 1, 4, 2, 18, 9, 3, 4, 2, 8, 11]]
Bây giờ, hãy để đảo ngược các nội dung của mảng Numpy được tạo ở trên bằng NP.Flip [],np.flip[],
>>> x = np.arange[10].reshape[2, 5]
>>> x
Out[2]:
array[[[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]]]
>>> x[::-1] # returns a view:
Out[3]: array[[[5, 6, 7, 8, 9],
[0, 1, 2, 3, 4]]]
3Đầu ra:
Reversed Array : [11 8 2 4 3 9 18 2 4 1 6]
Vì nó là mảng 1D numpy, vì vậy chúng tôi không cần cung cấp tham số trục.
Mảng Numpy 2D ngược bằng NP.FLIP []
Hãy để tạo ra một mảng 2D numpy, tức là.
>>> x = np.arange[10].reshape[2, 5]
>>> x
Out[2]:
array[[[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]]]
>>> x[::-1] # returns a view:
Out[3]: array[[[5, 6, 7, 8, 9],
[0, 1, 2, 3, 4]]]
5Nội dung của mảng 2d numpy là,
>>> x = np.arange[10].reshape[2, 5]
>>> x
Out[2]:
array[[[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]]]
>>> x[::-1] # returns a view:
Out[3]: array[[[5, 6, 7, 8, 9],
[0, 1, 2, 3, 4]]]
6Nội dung ngược trong tất cả các hàng và tất cả các cột của mảng 2D Numpy
Nếu chúng tôi không cung cấp bất kỳ tham số trục nào trong np.flip [] thì FIT sẽ đảo ngược nội dung dọc theo tất cả các trục của mảng 2D, tức là.
>>> x = np.arange[10].reshape[2, 5]
>>> x
Out[2]:
array[[[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]]]
>>> x[::-1] # returns a view:
Out[3]: array[[[5, 6, 7, 8, 9],
[0, 1, 2, 3, 4]]]
7Đầu ra:
>>> x = np.arange[10].reshape[2, 5]
>>> x
Out[2]:
array[[[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]]]
>>> x[::-1] # returns a view:
Out[3]: array[[[5, 6, 7, 8, 9],
[0, 1, 2, 3, 4]]]
8Nó lật nội dung trong tất cả các hàng và tất cả các cột của mảng 2D
Nội dung đảo ngược của tất cả các hàng chỉ trong mảng 2d numpy
>>> x = np.arange[10].reshape[2, 5]
>>> x
Out[2]:
array[[[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]]]
>>> x[::-1] # returns a view:
Out[3]: array[[[5, 6, 7, 8, 9],
[0, 1, 2, 3, 4]]]
9Đầu ra:
>>> np.flip[x]
Out[4]: array[[[9, 8, 7, 6, 5],
[4, 3, 2, 1, 0]]]
0Nội dung ngược của tất cả các cột chỉ trong mảng 2D Numpy
>>> np.flip[x]
Out[4]: array[[[9, 8, 7, 6, 5],
[4, 3, 2, 1, 0]]]
1Đầu ra:
>>> np.flip[x]
Out[4]: array[[[9, 8, 7, 6, 5],
[4, 3, 2, 1, 0]]]
2Nội dung đảo ngược chỉ một cột trong mảng 2d numpy
>>> np.flip[x]
Out[4]: array[[[9, 8, 7, 6, 5],
[4, 3, 2, 1, 0]]]
3Đầu ra:
>>> np.flip[x]
Out[4]: array[[[9, 8, 7, 6, 5],
[4, 3, 2, 1, 0]]]
4Nó lật nội dung của cột thứ 2 chỉ trong mảng numpy.
Nội dung đảo ngược chỉ một hàng trong mảng 2d numpy
>>> np.flip[x]
Out[4]: array[[[9, 8, 7, 6, 5],
[4, 3, 2, 1, 0]]]
5Đầu ra:
>>> np.flip[x]
Out[4]: array[[[9, 8, 7, 6, 5],
[4, 3, 2, 1, 0]]]
6Nó lật nội dung của hàng thứ 2 chỉ trong mảng numpy.
Ví dụ hoàn chỉnh như sau:
>>> np.flip[x]
Out[4]: array[[[9, 8, 7, 6, 5],
[4, 3, 2, 1, 0]]]
7Output:
>>> np.flip[x]
Out[4]: array[[[9, 8, 7, 6, 5],
[4, 3, 2, 1, 0]]]
8