English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En Python, cortar significa llevar elementos desde un índice dado hasta otro índice dado.
Pasamos la rebanada en lugar de los índices, así:[start:end].
También podemos definir el paso, como se muestra a continuación:[start:end:step].
Si no pasamos start, se considera 0.
Si no pasamos end, se considera la longitud del array en esa dimensión.
Si no pasamos step, se considera 1.
Vamos a ver un ejemplo específico
>>> import numpy as np ,对数组进行裁切:1, 2, 3, 4, 5, 6, 7,np.nan, ]) # 从第二个元素开始,对从索引1:5)] # Cortar el índice 1 ]) # 从两个元素裁切索引 5 ]) # Ahora vamos a imprimir los que son más grandes de [2 3 4 5] ]) # 从第二个元素开始,对从索引4]:) # Cortar el rango de índices del array 4 hasta el final de los elementos [5 6 7] >>> print(arr[:4)] # Cortar desde el principio hasta la posición 4los elementos (no incluidos) [1 2 3 4]
使用减号运算符从末尾开始引用索引:
从末尾开始的索引 3 负裁切 1使用减号运算符从末尾开始引用索引:
>>> import numpy as np ,对数组进行裁切:1, 2, 3, 4, 5, 6, 7,np.nan, ]) # 从第二个元素开始,对从索引-3:-1,np.nan, [5 6]
到末尾开始的索引
>>> import numpy as np ,对数组进行裁切:1, 2, 3, 4, 5, 6, 7,np.nan, ]) # 从第二个元素开始,对从索引1:5:2STEP 步长 1 ]) # 从两个元素裁切索引 5使用 step 值确定裁切的步长 [2 4] >>> arr = np.array([2]) # 从索引 [1 3 5 7]
])# 返回数组中相隔的元素 1 ]) # 从两个元素裁切索引 4裁切
>>> import numpy as np D 数组1, 2, 3, 4, 5], [6, 7, 8, 9, 10]] ]) # 从第二个元素开始,对从索引1, 1:4>>> arr = np.array([ 1 ]) # 从两个元素裁切索引 4>>> print(arr[ [7 8 9] ]) # 从两个元素中返回索引2, 2]) # 从第二个元素开始,对从索引 2 [3 8] ]) # 从两个元素中返回索引2, 1:4>>> print(arr[0: 1 ]) # 从两个元素裁切索引 4到索引 2-(不包括),这将返回一个 [[2 3 4] [7 8 9]]
D 数组
整数数组索引1,1以下实例获取数组中(0,0),(2)和(
>>> import numpy as np ,0)位置处的元素。1, 2], [3, 4], [5, 6]] >>> x = np.array([1,2>>> y = x[[1], [ >>> print(y) [1 4 5]
,0]] 4以下实例获取了3 X3,3数组中的四个角的元素。行索引是 [2]],而列索引是 [2]]。
>>> import numpy as np >>> x = np.array([ 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]] >>> print(x) [[ 0 1 2] [ 3 4 5] [ 6 7 8] [ 9 10 11]] >>> rows = np.array([3,3]] >>> cols = np.array([2],[0,2]] >>> y = x[rows,cols] >>> print(y) [[ 0 2] [ 9 11]]
返回的结果是包含每个角元素的 ndarray 对象。
可以借助切片 : 或 … 与索引数组组合。如下面实例:
>>> import numpy as np >>> a = np.array([1,2,3], [4,5,6],[7,8,9]] >>> b = a[1:3, 1:3] >>> c = a[1:3,1,2]] >>> d = a[...,1:] >>> print(b) [[5 6] [8 9]] >>> print(c) [[5 6] [8 9]] >>> print(d) [[2 3] [5 6] [8 9]]
我们可以通过一个布尔数组来索引目标数组。
布尔索引通过布尔运算(如:比较运算符)来获取符合指定条件的元素的数组。
以下实例获取大于 5 的元素:
>>> import numpy as np >>> x = np.array([ 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]] >>> print(x) [[ 0 1 2] [ 3 4 5] [ 6 7 8] [ 9 10 11]] >>> print(x[x > 5]) # 现在我们会打印出大于 5 ]) # Ahora vamos a imprimir los que son más grandes de [ 6 7 8 9 10 11]
elementos
>>> import numpy as np A continuación se muestra un ejemplo que utiliza ~ (operador de complemento) para filtrar NaN. 1,2>>> a = np.array([np.nan,3,4,5,np.nan, ]) [ 1.j 2.j 3.j 4.j 5>>> print(a[~np.isnan(a)])
j])
>>> import numpy as np A continuación se muestra un ejemplo de cómo filtrar elementos no complejos de un array.1, 2+6>>> a = np.array([ 5, 3.j5+5j, j]) [2>>> print(a[np.iscomplex(a)])+6.0 3.j5+5.
Índices de estilo de花样
Los índices de estilo de花样 utilizan arrays de enteros para indexar.
Los índices de estilo de花样 no son como los cortes, siempre copian los datos a un nuevo array.
>>> import numpy as np >>> x=np.arange(32).reshape((8,4)) >>> print(x[[4,2,1,7]) # Ingresar array de índices en orden [[16 17 18 19] [ 8 9 10 11] [ 4 5 6 7] [28 29 30 31]] >>> print(x[[-4,-2,-1,-7]) # Ingresar array de índices invertidos [[16 17 18 19] [24 25 26 27] [28 29 30 31] [ 4 5 6 7]] >>> print(x[np.ix_([1,5,7,2],[0,3,1,2)])) # Ingresar múltiples arrays de índices (usar np.ix_) [[ 4 7 5 6] [20 23 21 22] [28 31 29 30] [ 8 11 9 10]]