[Análisis de datos de Python] conceptos básicos numpy

Propiedades de la matriz

La diferencia entre ndim y forma

El número de ejes ndim, es decir, el número de capas de afuera hacia adentro (eje = 0 es la capa más externa)
forma Los elementos de cada conjunto de capas devuelven una tupla cuya longitud es ndim, como (2,2,3) significa eje = 0, hay dos elementos; eje = 1, hay dos elementos, el eje más interno = 3 tiene 3 elementos, ndim = 3
Inserte la descripción de la imagen aquí

Crear matriz

1. Creación general

numpy.array (objeto, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

numpy.empty (forma, dtype = flotador, orden = 'C') para crear un vacío de matriz
numpy.zeros (forma, dtype = flotador, orden = 'C') para crear un cero de matriz
numpy.ones (forma, dtype = Ninguno, order = 'C') Crear 1 matriz

2. Crear una matriz a partir de una matriz existente

numpy.asarray (a, dtype = None, order = None) a es un parámetro de entrada de cualquier forma, que puede ser una lista, una tupla de una lista, una tupla, etc.
numpy.frombuffer (buffer, dtype = float, count = -1, offset = 0) El búfer se pasa en el parámetro
numpy.fromiter (iterable, dtype, count = -1) en forma de una secuencia creada a partir de un objeto iterable

3. Crear una matriz a partir de un rango de valores

numpy.arange (start, stop, step, dtype) crea una matriz dentro del rango de start-stop
np.linspace (start, stop, num = 50, endpoint = True, retstep = False, dtype = None) crea una matriz de equivalencia unidimensional, num es el número de elementos generados
np.logspace (inicio, detención, num = 50, punto final = Verdadero, base = 10.0, dtype = Ninguno) para crear una secuencia proporcional, base log base

corte e indexación numpy

1. rebanada () rebanadas por índice

import numpy as np
a = np.arange(10)
s = slice(2,7,## 标题2)   # 从索引 2 开始到索引 7 停止,间隔为2
print (a[s])
[2,4,6]

2. [inicio: detener: paso]
b = a [2: 7: 2]
Explicación de dos puntos: si solo se coloca un parámetro, como [2], se devolverá un solo elemento correspondiente al índice. Si es [2:], significa que se extraerán todos los elementos que comiencen desde el índice. Si se utilizan dos parámetros, como [2: 7], extraiga los elementos entre los dos índices ( excluyendo el índice de detención )

3. Incluya puntos suspensivos ... para que la longitud de la tupla seleccionada sea igual a la dimensión de la matriz, use puntos suspensivos para la posición de la fila y devuelva una matriz que contenga los elementos en la fila

import numpy as np
 
a = np.array([[1,2,3],[3,4,5],[4,5,6]])  
print (a[...,1])   # 第2列元素
print (a[1,...])   # 第2行元素
print (a[...,1:])  # 第2列及剩下的所有元素

#输出结果
[2 4 5]

[3 4 5]

[[2 3]
 [4 5]
 [5 6]]

Índice avanzado

Índice de matriz entera

import numpy as np 
 
x = np.array([[1,  2],  [3,  4],  [5,  6]]) 
y = x[[0,1,2],  [0,1,0]]  
print (y)
#输出结果,获取数组(0,0),(1,1),(2,0)位置处元素
[1,4,5]

Rebanada: o ... combinada con una matriz indexada

a = np.array([[1,2,3], [4,5,6],[7,8,9]])
c = a[1:3,[1,2]]
#输出结果,1:3切片索引不含尾,[1,2]索引数组包含头和尾
[[5 6]
 [8 9]]

Índice booleano
Utilice operaciones booleanas (como operadores de comparación) para obtener una matriz de elementos que cumplan condiciones específicas. x [x> 5]
a [~ np.isnan (a)] filtra NaN
a [np.iscomplex (a)] en a y propone números complejos

La indexación de fantasía se
refiere a la indexación usando matrices de enteros, que es diferente de la división. Siempre copia datos a una nueva matriz . Si el objetivo es una matriz multidimensional, entonces la línea correspondiente al subíndice
x = np.arange (32 ) .reshape ((8,4))
print (x [[4,2,1,7]]) #line index

x=np.arange(32).reshape((8,4))
print (x[np.ix_([1,5,7,2],[0,3,1,2])])#传入多个索引数组(要使用np.ix_)

NumPy Broadcast (Broadcast)

Cuando a.shape ≠ b.shape está en funcionamiento, se activa el mecanismo de transmisión

Reglas de transmisión:

Todas las matrices de entrada están alineadas con la matriz con la forma más larga, y las partes faltantes de la forma se llenan agregando 1 al frente.
La forma de la matriz de salida es el valor máximo en cada dimensión de la forma de la matriz de entrada.
Si una dimensión de la matriz de entrada y la dimensión correspondiente de la matriz de salida tienen la misma longitud o su longitud es 1, la matriz se puede usar para el cálculo; de lo contrario, se produce un error.
Cuando la longitud de una dimensión de la matriz de entrada es 1, el primer conjunto de valores en esta dimensión se utiliza al calcular a lo largo de esta dimensión.
importar numpy como np

a = np.array([[ 0, 0, 0],
           [10,10,10],
           [20,20,20],
           [30,30,30]])
b = np.array([1,2,3])
bb = np.tile(b, (4, 1))  # 重复 b 的各个维度
print(a + bb)
#结果
[[ 1  2  3]
 [11 12 13]
 [21 22 23]
 [31 32 33]]

La función tile () es copiar la matriz original horizontal y verticalmente.

tile (mat, (1, 4)) # La columna se copia cuatro veces el original

NumPy iterate array numpy.ndite

Numpy array operaciones

Modificar forma de matriz

numpy.reshape (arr, newshape, order = 'C')

iterador de elemento de matriz numpy.ndarray.flat

ndarray.flatten (order = 'C') devuelve una copia de la matriz, los cambios realizados en la copia no afectarán a la matriz original, orden: 'C'-por fila,' F'-por columna, 'A'-original Orden, 'K': el orden en que aparecen los elementos en la memoria.

a=[[0 1 2 3]
 [4 5 6 7]]
a.flatten()=[0 1 2 3 4 5 6 7]

numpy.ravel (a, order = 'C') elementos de matriz aplanados, la modificación afectará a la matriz original.

Voltear matriz

numpy.transpose (arr, ejes) intercambia las dimensiones de la matriz, de forma similar a numpy.ndarray.T transpose

La función numpy.rollaxis (arr, axis, start) desplaza un eje específico hacia atrás a un
eje de posición específico : el eje que se desplazará hacia atrás , la posición relativa de otros ejes no cambiará
start: el valor predeterminado es cero, lo que significa desplazamiento completo. Se desplazará a una ubicación específica.

a = np.arange(8).reshape(2,2,2)
b=np.rollaxis(a,2)#将轴 2 滚动到轴 0(宽度到深度)
c=np.rollaxis(a,2,1) # 将轴 0 滚动到轴 1:(宽度到高度)
原数组:
[[[0 1]
  [2 3]]

 [[4 5]
  [6 7]]]
b:
[[[0 2]
  [4 6]]
 [[1 3]
  [5 7]]]
c:
[[[0 2]
  [1 3]]

 [[4 6]
  [5 7]]]

numpy.swapaxes (arr, axis1, axis2) intercambian los dos ejes de la matriz

Modificar dimensiones de matriz

numpy.broadcast (arr1, arr2) se usa para imitar el objeto de difusión, devuelve un objeto, el objeto encapsula el resultado de transmitir una matriz a otra matriz.

numpy.broadcast_to (matriz, forma, subok)

numpy.expand_dims (arr, axis) Expande la forma de la matriz insertando un nuevo eje en la posición especificada

numpy.squeeze (arr, axis) elimina las entradas unidimensionales de la forma de una matriz determinada

Unirse a la matriz

numpy.concatenate ((a1, a2, ...), axis) conecta dos o más matrices de la misma forma a lo largo del eje especificado

numpy.stack (arrays, axis) stack stack array a lo largo de un nuevo eje

Matriz dividida

numpy.split (ary, indices_or_sections, axis) Nota: si se trata de una matriz, es la posición para dividir a lo largo del eje (abrir a la izquierda y cerrar a la derecha)

numpy.hsplit se usa para dividir la matriz horizontalmente

numpy.vsplit dividido a lo largo del eje vertical

Agregar y eliminar elementos de matriz

numpy.resize (arr, shape) Si el tamaño de la nueva matriz es mayor que el tamaño original, contiene una copia de los elementos de la matriz original

numpy.append (arr, valores, axis = None) los valores deben tener la misma forma que arr, axis: el valor predeterminado es None. Cuando el eje no está definido, es una suma horizontal, ¡y el retorno es siempre una matriz unidimensional!

numpy.insert (arr, obj, valores, eje) Los parámetros del eje no se pasan, la matriz de entrada se expandirá antes de la inserción

Numpy.delete (arr, obj, axis) devuelve una nueva matriz que elimina la matriz secundaria especificada de la matriz de entrada. Como en el caso de la función insert (), si no se proporcionan parámetros de eje, la matriz de entrada se expandirá.

numpy.unique (arr, return_index, return_inverse, return_counts) elimina elementos duplicados en la matriz

Aritmética de bits NumPy

bitwise_y realiza la operación bitwise
en los elementos de la matriz bitwise_o realiza la operación bitwise en los elementos de la matriz
invertir la inversión bitwise
left_shift desplaza los bits de la representación binaria a la izquierda right_shift desplaza los bits de la representación binaria a la
derecha

operación de función numpy

Funciones de cadena (en la clase de grupo numpy.char)

add () concatena los elementos de cadena de dos matrices uno por uno
multiply () devuelve la cadena multiconectada por el
centro del elemento () cadena centrada
capitalize () convierte la primera letra de la cadena a
título en mayúscula () convierte el carácter La primera letra de cada palabra de la cadena se convierte en mayúscula
inferior () El elemento de matriz se convierte en minúscula
superior () El elemento de matriz se convierte en
división en mayúscula () Especifique el delimitador para dividir la cadena y devolver la lista de matriz
splitlines () devuelve el elemento La lista de líneas en, dividida por una
tira de nueva línea () elimina el carácter específico al principio o al final del elemento
join () conecta los elementos en la matriz al especificar que el delimitador
replace () reemplaza todos los subcaracteres en la cadena con la nueva cadena Los
elementos de la matriz de decodificación de cadenas () llaman a str.decode Los elementos de la matriz de
codificación () llaman a str.encode

Funciones matematicas

sin (), cos (), tan ()
numpy.around (a, decimales) number devuelve el valor redondeado del número especificado
numpy.floor () redondea hacia abajo
numpy.ceil () redondea hacia arriba

Función aritmética

add (), sustraer (), multiplicar () y dividir () sumar, restar, multiplicar y dividir
numpy.reciprocal () devuelve el inverso de parámetro por elemento de
numpy.power () operación de potencia
numpy.mod () resto

NumPy funciones estadísticas

numpy.amin () y numpy.amax () calculan los valores mínimos y
máximos de elementos en la matriz a lo largo del eje especificado numpy.ptp () valor máximo-mínimo
numpy.percentile (a, q, axis) q percentil a calcular número
numpy.median () mediana
numpy.mean () es la media aritmética de la suma del número de elementos a lo largo del eje del elemento de división
numpy.average () no se especifica eje, la matriz se despliega
desviación estándar np.std
NP. var var

Clasificación NumPy, función de selección de pincel condicional

numpy.sort (a, axis, kind, order) kind: el valor predeterminado es 'quicksort' (clasificación rápida)
numpy.argsort () devuelve el valor de índice del valor de la matriz de pequeño a grande.
numpy.lexsort () ordena varias secuencias, devuelve el valor del índice, coloca el elemento con mayor prioridad en la parte posterior
sort_complex (a) clasifica los números complejos en el orden de la parte real y luego la parte imaginaria
(a, kth [, axis , kind, order]) partición de clasificación
argpartition (a, kth [, axis, kind, order] puede usar la palabra clave kind para especificar el algoritmo para particionar la matriz a lo largo del eje especificado
numpy.argmax () y numpy.argmin () a lo largo del dado El eje devuelve el índice de los elementos más grandes y más pequeños. La función
numpy.nonzero () devuelve el índice de los elementos distintos de cero en la matriz de entrada.
Numpy.where ()
numpy.extract () extrae elementos de la matriz de acuerdo con una determinada condición y devuelve los elementos con condiciones completas

Intercambio de bytes

La función numpy.ndarray.byteswap () convierte los bytes de cada elemento del ndarray en big-endian.

NumPy copiar y ver

Las vistas generalmente ocurren cuando la vista se modifica para cambiar el valor original

1. La operación de corte numpy devuelve la vista de los datos originales.
2. Llame a la función view () de ndarray para generar una vista.

La copia generalmente ocurre cuando el valor original de la copia no cambia

Para operaciones de corte de secuencias de Python, llame a la función deepCopy ().
Llame a la función copy () de ndarray para producir una copia

Biblioteca de matriz NumPy (Matrix) numpy.matlib

numpy.matlib.empty (shape, dtype, order) devuelve una nueva matriz
numpy.matlib.zeros ()
numpy.matlib.ones ()
numpy.matlib.eye ()
numpy.matlib.identity () unidad matriz
numpy.matlib La
matriz .rand () siempre es bidimensional, y ndarray es una matriz n-dimensional. Ambos objetos son intercambiables.

NumPy álgebra lineal

dot El producto dot de dos matrices, es decir, los elementos se multiplican correspondientemente.
vdot El producto puntual de dos vectores
internos El producto interno de
dos matrices matmul El producto matricial de dos matrices
linalg.det () El determinante de la matriz
linalg.solve () Resuelve la ecuación de matriz lineal
linalg.inv () Calcula el momento inverso multiplicativo de la matriz

NumPy IO

numpy.save (file, arr, allow_pickle = True, fix_imports = True) La función
numpy.savez () guarda múltiples matrices en un archivo con extensión npz.
np.loadtxt (FILENAME, dtype = int, delimiter = '')
np.savetxt (FILENAME, a, fmt = "% d", delimiter = ",")

Publicado 4 artículos originales · recibido 1 · vistas 128

Supongo que te gusta

Origin blog.csdn.net/qq_34385466/article/details/104445071
Recomendado
Clasificación