numpy数组切片:print(a[0::2])、[::-1]、[::2]、[:,2]、[1:,-1:]、[ : ,: -1],[:,-2:]、[ : n]、[m : ]等含义(详细)
时间: 2024-01-11 14:04:47 浏览: 103
当a是一个二维的numpy数组时,这些切片的含义如下:
- `a[0::2]`:取出所有偶数行,即从第0行开始每隔一行取一次;
- `a[::-1]`:将数组行倒序排列;
- `a[::2]`:取出所有奇数行,即从第0行开始每隔一行取一次;
- `a[:,2]`:取出第二列所有元素;
- `a[1:,-1:]`:取出第二行及以后的所有行的最后一个元素,即最后一列;
- `a[:, :-1]`:取出所有行的除了最后一列以外的所有元素;
- `a[:, -2:]`:取出所有行的最后两列元素;
- `a[:n]`:取出前n行的所有元素;
- `a[m:]`:取出从第m行开始的所有行的所有元素。
需要注意的是,这些切片操作中的冒号(`:`)表示取所有元素的意思。如果在冒号前后加上数字,则表示取对应的行或列。切片操作还可以使用多个冒号分隔,例如`a[1:4:2, 2:5:2]`表示取第2到4行中每隔一行取一次,第3到5列中每隔一列取一次的所有元素。
相关问题
NumPy一维数组索引: 一维数组切片: 二维数组索引: 二维数组切片(取第 2 列):二维数组切片(取第 2,3 行):
一维数组索引:
```python
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr[0]) # 输出:1
print(arr[2]) # 输出:3
```
一维数组切片:
```python
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr[1:4]) # 输出:[2 3 4]
```
二维数组索引:
```python
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr[0, 0]) # 输出:1
print(arr[1, 2]) # 输出:6
```
二维数组切片(取第 2 列):
```python
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr[:, 1]) # 输出:[2 5 8]
```
二维数组切片(取第 2,3 行):
```python
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr[1:3, :]) # 输出:[[4 5 6] [7 8 9]]
```
numpy数组切片对切片
numpy数组切片操作可以通过冒号分隔切片参数来进行。下面是一些常见的numpy数组切片操作示例:
1. 一维数组切片:
- 一个参数:`a[i]`,表示取数组中索引为`i`的元素。
- 两个参数:`b = a[i:j]`,表示取数组中索引从`i`到`j-1`的元素。
- 三个参数:`b = a[i:j:s]`,表示以步长`s`取数组中索引从`i`到`j-1`的元素。
2. 二维数组切片:
- 取元素:`X[n0, n1]`,表示取二维数组`X`中第`n0`行、第`n1`列的元素。
- 切片:`X[s0:e0, s1:e1]`,表示取二维数组`X`中行索引从`s0`到`e0-1`,列索引从`s1`到`e1-1`的元素。
- 特殊情况:`X[:e0, s1:]`,表示取二维数组`X`中前`e0`行,从`s1`列到最后一列的元素。
下面是一些代码示例:
```python
import numpy as np
# 一维数组切片
a = np.array([1, 2, 3, 4, 5])
print(a[2]) # 输出:3
print(a[1:4]) # 输出:[2 3 4]
print(a[::2]) # 输出:[1 3 5]
# 二维数组切片
X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(X[1, 2]) # 输出:6
print(X[0:2, 1:3]) # 输出:[[2 3] [5 6]]
print(X[:2, 1:]) # 输出:[[2 3] [5 6]]
```
阅读全文