Numpy: operaciones de adición, eliminación y modificación de elementos de matriz (Ndarray)


Adición, eliminación y modificación de elementos de matriz

Array también es un tipo mutable, y los elementos de la matriz se pueden agregar, eliminar y modificar.Este artículo presenta las operaciones de agregar y eliminar elementos de la matriz en detalle, y se enumeran los métodos de estas dos operaciones. La operación de modificación de los elementos de la matriz es simple. Siempre que domine el índice y el segmento, puede usar el índice y el segmento para obtener el elemento y luego asignarlo.

añadir elemento

método ilustrar
numpy.append() Agregar elemento a la matriz
numpy.insertar() elemento de inserción de matriz

numpy.append()

Agrega elementos al final de la matriz.

numpy.append(arr, values, axis=None)

Descripción de parámetros:

  • arr: Recibe array_like, la matriz a la que se deben agregar los elementos.
  • valores: recibe array_like, elementos para agregar al final, las formas deben coincidir. Las dimensiones de arr y los valores deben ser iguales para agregar
  • axis: recibe un int, si no se proporciona ningún eje, tanto arr como los valores se aplanarán antes de su uso.

valor de retorno:

  • ndarray, una copia de arr.

Ejemplo:

# 创建数组a
>>> a = np.arange(1,7).reshape(2,3)
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
# 创建数组b       
>>> b = np.arange(7,10).reshape(1,3) # a,b维度相同才能追加
>>> b  
array([[7, 8, 9]]) 

Nota: Las dimensiones de la matriz (arr) y el valor adicional (values) deben ser iguales antes de que puedan ser perseguidos, de lo contrario, se informará un error:

ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 2 dimension(s) and the array at index 1 has 1 dimension(s)

Cuando no se especifica ningún eje, se genera una copia y las matrices a y b se aplanan y agregan.

# 将数组b追加到数组a后
>>> np.append(a, values=b) # 不指定axis时
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9]) 

Cuando se especifica el eje, se agregará de acuerdo con el eje, pero las formas deben coincidir. Cuando se especifica el eje para la suma de filas, el número de columnas debe ser igual, y cuando se especifica el eje para la suma de columnas, el número de filas debe ser igual.

>>> np.append(a, values=b, axis=0) # 根据行追加
array([[ 1,  2,  3],
       [ 4,  5,  6],
       [ 7,  8,  9]])

Cuando se especifica el eje, cuando el eje se especifica como una columna, el número de filas es diferente, la forma no coincide y no se puede agregar, ¡y se informará un ValueError!

>>> np.append(a, values=b, axis=1)
ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 2 and the array at index 1 has size 1

numpy.insertar()

Inserta un valor en el eje dado y en la posición de índice especificada.

numpy.insert(arr, obj, values, axis=None)

Descripción de parámetros:

  • arr: recibe array_like, la matriz de entrada.
  • obj: Recibe un número entero o secuencia de números enteros, la posición del índice.
  • valores: reciba array_like, necesita insertar el valor de la matriz, necesita considerar la forma.
  • eje: acepta un entero, el eje. Las matrices axiales se aplanan si no se dan.

valor de retorno:

  • ndarray, una copia del valor insertado.

Ejemplo:

>>> a = np.arange(1,7).reshape(2,3)
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
>>> b = np.ones(shape=(2,1))
>>> b
array([[1.],
       [1.]])
       
# 向数组a的行方向,索引为2的行插入数组b,会自动补全
>>> np.insert(a, 2, b, axis=0)
array([[1, 2, 3],
       [4, 5, 6],
       [1, 1, 1],
       [1, 1, 1]])
       
# 向数组a的列方向,索引为2的列插入数组b
>>> np.insert(a, 2, b, axis=1)
array([[1, 2, 1, 1, 3],
       [4, 5, 1, 1, 6]])

eliminar elemento

método ilustrar
numpy.delete() Eliminar el subarreglo de un eje y devolver el nuevo conjunto después de la eliminación

numpy.delete()

Devuelve una nueva matriz con subarreglos eliminados a lo largo del eje.

numpy.delete(arr, obj, axis=None)

Descripción de parámetros:

  • arr: Recibir array_like, matriz de entrada.
  • obj: recibe un índice, segmento o matriz de enteros.
  • eje: recibir entero, eje

valor de retorno:

  • ndarray, la matriz con elementos eliminados, es una copia.

Ejemplo:

>>> a = np.arange(1,7).reshape(2,3)
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
# 轴向为列,删除索引为2的列      
>>> np.delete(a, 2, axis=1)      
array([[1, 2],
       [4, 5]])

La forma es muy importante al operar los datos. Si la forma no coincide, se informará un error. Debe comprender el tipo de error para encontrar la causa a tiempo después de que ocurra el problema. Además, el eje también es muy importante.En una matriz bidimensional: eje=0 significa fila, eje=1 significa columna, este concepto es muy confuso.

modificación de elementos

Use el segmento de índice para obtener el elemento en la posición y luego use "=" para reasignar la posición.

Sintaxis: nombre de matriz[índice]=valor o nombre de matriz[segmento]=valor

Ejemplo:

>>> a = np.arange(1,7).reshape(2,3)
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
       
# 使用索引获取到该位置后重新赋值即可修改元素       
>>> a[0, 1] = 100
>>> a
array([[ 1, 100, 3],
       [ 4,  5,  6]])     

Supongo que te gusta

Origin blog.csdn.net/shield911/article/details/124269761
Recomendado
Clasificación