Python base computación científica -NumPy (2)

  • Funciones matemáticas
  • indexación de matriz y rebanar

Funciones matemáticas

Al utilizar Python viene con el operador, que puede hacer el cálculo en las matemáticas, así como asumir el control, el redondeo, el poder de computación. Después de la introducción viene módulo de matemáticas, que también contiene un valor absoluto, una serie de factorial, raíz cuadrada y otras funciones matemáticas comunes. Sin embargo, estas funciones son relativamente básico. Si desea completar algunos de los cálculos matemáticos más complejos, se convertirá estirada hacia arriba.

(1) trigonométrica
numpy.sin (x): seno trigonométrico.
numpy.cos (x): coseno trigonométrico.
numpy.tan (x): tangente triángulo.
numpy.arcsin (x): Triángulo asin.
numpy.arccos (x): triángulo coseno inverso.
numpy.arctan (x): trigonométrica arco tangente.
numpy.hypot (x1, x2): encontrar la hipotenusa de un triángulo rectángulo.
numpy.degrees (x): radianes Convertir a grados.
numpy.radians (x): grados a radianes.
numpy.deg2rad (x): grados a radianes.
numpy.rad2deg (x): radianes Convertir a grados.

(2) hiperbólica funciones
numpy.sinh (x): seno hiperbólico.
numpy.cosh (x): coseno hiperbólico.
numpy.tanh (x): hiperbólica tangente.
numpy.arcsinh (x): seno hiperbólico inverso.
numpy.arccosh (x): coseno hiperbólico inverso.
numpy.arctanh (x): tangente hiperbólica inversa.

(3) el redondeo de
redondeo, también conocido como medio de redondeo digitales antes de realizar una operación digital específico, el mismo número de bits se determina de acuerdo con ciertas reglas, y luego el proceso de descartar el exceso de mantisa algunas figuras posteriores. Por ejemplo, a menudo oímos, "5 en 4 redonda" en pertenece a un redondeo de.
numpy.around (a): el número medio de cifras decimales dados.
numpy.round_ (a): la matriz redondea al número dado de posiciones decimales.
numpy.rint (x): redondeo al entero más cercano.
numpy.fix (x, y): 0 a ronda al entero más cercano.
numpy.floor (x): vuelve a la entrada inferior.
numpy.ceil (x): Devuelve la entrada de límite superior.
numpy.trunc (x): Devuelve el punto de corte de entrada.

a = np.random.randn(5)  # 生成 5 个随机数
a  # 输出 a 的值
> array([-0.36063527,  0.48682976, -0.4143421 ,  0.21499006,  0.25709575])

np.around(a)
> array([-0.,  0., -0.,  0.,  0.])

np.rint(a)
> array([-0.,  0., -0.,  0.,  0.])

np.fix(a)
> array([-0.,  0., -0.,  0.,  0.])

(4) una suma, producto, diferencia
numpy.prod (a, eje, dtype, keepdims): devuelve el producto de eje elemento de matriz especificado.
numpy.sum (a, ejes, dtype, keepdims): Devuelve la suma de eje elemento de matriz.
numpy.nanprod (a, eje, de tipo D, keepdims): Devuelve el eje especificado de los elementos de la matriz del producto, será tratado como un NaN.
numpy.nansum (a, ejes, dtype, keepdims): Devuelve la suma de eje elemento de la matriz, de NaN tratado como 0.
numpy.cumprod (a, eje, dtype) : devuelve el producto acumulado de elementos a lo largo de un eje dado.
numpy.cumsum (a, eje, dtype) : devuelve la suma acumulada de los elementos a lo largo de un eje dado.
numpy.nancumprod (a, eje, dtype) : Devuelve el producto acumulado de elementos a lo largo de un eje dado será NaN considerado como 1.
numpy.nancumsum (a, eje, dtype) : devuelve la suma acumulada de los elementos a lo largo de un eje dado, el 0 NaN considerado.
numpy.diff (a, n, eje) : calculada a lo largo de un eje especificado de n diferencial discreta.
numpy.ediff1d (ary, to_end, to_begin) : la diferencia entre elementos sucesivos de la matriz.
numpy.gradient (f): Devuelve un gradiente de matrices de N-dimensiones.
numpy.cross (a, b, Axisa, axisb, axisc, eje): devuelve el producto cruzado de dos (arrays) vector.
numpy.trapz (y, x, dx, eje): integración regla trapezoidal compuesto a lo largo del eje dado.

(5) exponencial y logarítmica
numpy.exp (x): índice de cálculo de todos los elementos de la matriz de entrada.
numpy.log (x): logaritmo natural.
numpy.log10 (x): calcula logaritmo común.
numpy.log2 (x): calculado para números binarios.

(6) aritmética
(x1, x2) numpy.add: se añaden los elementos correspondientes.
numpy.reciprocal (x): una recíproca 1 / x.
numpy.negative (x): encontrar el negativo correspondiente.
numpy.multiply (x1, x2): Solución de multiplicación.
numpy.divide (x1, x2): división x1 / x2.
numpy.power (x1, x2): Similar x1 ^ x2.
numpy.subtract (x1, x2): resta.
numpy.fmod (x1, x2): Devuelve el resto del elemento de división.
numpy.mod (x1, x2): devuelve el resto.
numpy.modf (x1): devuelve la parte entera y una matriz fraccionada.
numpy.remainder (x1, x2): Devuelve el resto de la división.

a1 = np.random.randint(0, 10, 5)  # 生成 5 个从 0-10 的随机整数
a2 = np.random.randint(0, 10, 5)
a1, a2  # 输出 a1, a2
> (array([5, 0, 8, 2, 0]), array([7, 8, 7, 1, 4]))

np.add(a1, a2)
> array([12,  8, 15,  3,  4])

np.negative(a1)
> array([-5,  0, -8, -2,  0])

np.multiply(a1, a2)
> array([35,  0, 56,  2,  0])

np.divide(a1, a2)
> np.divide(a1, a2)

np.power(a1, a2)
> array([  78125,       0, 2097152,       2,       0])

(7) y la matriz de producto vectorial
numpy.dot (a, b): La solución del producto escalar de dos matrices.
numpy.vdot (a, b): Solución dot producto de dos vectores.
numpy.inner (a, b): Solución producto interno de dos matrices.
numpy.outer (a, b): Solución producto externo de dos vectores.
numpy.matmul (a, b): la solución del producto de matriz de dos matrices.
numpy.tensordot (a, b): tensores de solución de producto.
numpy.kron (a, b): calculado producto de Kronecker.

numpy.angle(z, deg): Devuelve los parámetros complejos ángulo.
numpy.real(val): Devuelve la parte real de los elementos de la matriz.
numpy.imag(val): Devuelve la parte imaginaria de los elementos de la matriz.
numpy.conj(x): Volver a modo conjugar elementos complejos.
numpy.convolve(a, v, mode): Vuelve lineales convolución.
numpy.sqrt(x): Raíz cuadrada.
numpy.cbrt(x): Raíz cúbica.
numpy.square(x): Square.
numpy.absolute(x): Valor absoluto, que puede ser resuelto complejo.
numpy.fabs(x): Absoluto.
numpy.sign(x): Función de signo.
numpy.maximum(x1, x2): Máximo.
numpy.minimum(x1, x2): Mínimo.
numpy.nan_to_num(x): Sustituir por un NaN 0.
numpy.interp(x, xp, fp, left, right, period): La interpolación lineal.

(8) el álgebra
numpy.linalg.cholesky(a): la descomposición de Cholesky.
numpy.linalg.qr(a ,mode): Cálculo de la matriz de factorización QR.
numpy.linalg.svd(a ,full_matrices,compute_uv): Descomposición de valor singular.
numpy.linalg.eig(a): Cálculo de la matriz cuadrada de los valores propios y los vectores propios derechos.
numpy.linalg.eigh(a, UPLO): Las devoluciones o matriz simétrica hermitiana de valores propios y los vectores propios.
numpy.linalg.eigvals(a): Cálculo de valores propios.
numpy.linalg.eigvalsh(a, UPLO): Valor característico calcular hermitiana o matriz simétrica real.
numpy.linalg.norm(x ,ord,axis,keepdims): Matriz Cálculo o norma vector.
numpy.linalg.cond(x ,p): Calcular el número de condición de la matriz.
numpy.linalg.det(a): Array cálculo Determinante.
numpy.linalg.matrix_rank(M ,tol): Uso de la descomposición de valor singular devuelve el método rango.
numpy.linalg.slogdet(a): Un número natural de símbolos y calcular el determinante de la matriz.
numpy.trace(a ,offset,axis1,axis2,dtype,out): Devuelve la suma de la diagonal de la matriz.
numpy.linalg.solve(a, b): Lineal ecuación de la matriz o ecuaciones escalares lineales.
numpy.linalg.tensorsolve(a, b ,axes): Tensor para resolver la ecuación x = B AX
numpy.linalg.lstsq(a, b ,rcond): devuelve una solución de mínimos cuadrados a la lineal matriz ecuación.
numpy.linalg.inv(a): Calcular la matriz inversa.
numpy.linalg.pinv(a ,rcond): Matriz de cálculo (Moore-Penrose) pseudo-inversa.
numpy.linalg.tensorinv(a ,ind): Cálculo de una matriz inversa N-dimensional.

indexación de matriz y rebanar

índice de matriz

(1)
a = np.arange(10)  # 生成 0-9
a[1] # 获取索引值为 1 的数据
a[[1, 2, 3]] # 分别获取索引值为 1,2,3 的数据

(2)
a = np.arange(20).reshape(4, 5)
a[1, 2] # 获取第 2 行,第 3 列的数据


# Python 中 list 索引 2 维数据的方法正确的做法是a[1][2]
a = a.tolist()
a[1][2]


a = np.arange(20).reshape(4, 5)
> array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19]])
       
a[[1, 2], [3, 4]]
> array([ 8, 14])
# 这里需要注意索引的对应关系。我们实际获取的是 [1, 3],也就是第 2 行和第 4 列对于的值 8。以及 [2, 4],也就是第 3 行和第 5 列对应的值 14。

(3)
a = np.arange(30).reshape(2, 5, 3)
> array([[[ 0,  1,  2],
        [ 3,  4,  5],
        [ 6,  7,  8],
        [ 9, 10, 11],
        [12, 13, 14]],

       [[15, 16, 17],
        [18, 19, 20],
        [21, 22, 23],
        [24, 25, 26],
        [27, 28, 29]]])
 
 a[[0, 1], [1, 2], [1, 2]]
 > array([ 4, 23])

rebanada de matriz

Ndarray[start:stop:step]: [start:stop:step]En representación [起始索引:截至索引:步长].

Para matriz unidimensional:

 a = np.arange(10)
 a[:,5]
 a[5:10]
 a[0:10:2]

Para matrices multidimensionales, sólo tenemos que utilizar una comas ,separan las diferentes dimensiones pueden ser:

a = np.arange(20).reshape(4,5)
a[0:3,2:4] # 先取第 3,4 列,再取第 1,2,3 行
a[:,::2]  # 按步长为 2 取所有列和所有行的数据。

secuencia

numpy.sort(a, axis=-1, kind='quicksort', order=None)
a: Array.
axis: Para ordenar el eje. Si se trata None, a continuación, ordenar la matriz antes de pavimentación. El valor por defecto es -1, el último pedido a lo largo de un eje.
kind: {'quicksort','mergesort','heapsort'}, Algoritmos de ordenación. El valor por defecto quicksort.

a = np.random.rand(20).reshape(4,5)
array([[0.4067026 , 0.02296533, 0.06435257, 0.99077083, 0.46672518],
       [0.73621431, 0.3910597 , 0.72614588, 0.55235663, 0.75587185],
       [0.38226065, 0.42122671, 0.02584968, 0.38518907, 0.62174531],
       [0.22214217, 0.00723674, 0.29625144, 0.85690794, 0.58018676]])

np.sort(a)
array([[0.02296533, 0.06435257, 0.4067026 , 0.46672518, 0.99077083],
       [0.3910597 , 0.55235663, 0.72614588, 0.73621431, 0.75587185],
       [0.02584968, 0.38226065, 0.38518907, 0.42122671, 0.62174531],
       [0.00723674, 0.22214217, 0.29625144, 0.58018676, 0.85690794]])

numpy.lexsort(keys ,axis): Indirecta clasificar por medio de una pluralidad de teclas.
numpy.argsort(a ,axis,kind,order): A lo largo de un eje dado realizar una especie indirecta.
numpy.msort(a): Un eje a lo largo de la primera especie.
numpy.sort_complex(a): Ordenar contra plural.

Búsqueda y recuento

argmax(a ,axis,out): Devuelve el valor máximo especificado en el eje de grupo índice .
nanargmax(a ,axis): Devuelve el índice del valor máximo especificado en el eje de grupo, haciendo caso omiso de NaN.
argmin(a ,axis,out): Devuelve el índice del mínimo especificado en el eje array.
nanargmin(a ,axis): Devuelve el índice del mínimo especificado en el eje array, haciendo caso omiso de NaN.
argwhere(a): Devuelve el índice de matriz de elementos distintos de cero, elementos agrupados.
nonzero(a): Devuelve el índice de matriz de elementos no nulos.
flatnonzero(a): Devuelve el índice de la matriz de elementos distintos de cero, y pavimentada.
where(条件,x,y): De acuerdo con las condiciones especificadas, a partir de la fila especificada, columna devuelve el elemento.
searchsorted(a,v ,side,sorter): Buscar los elementos que se insertan con el fin de mantener el índice.
extract(condition,arr): Devuelve una matriz de elementos que cumplen con ciertos criterios.
count_nonzero(a): Calcular el número de elementos no nulos en la matriz.

a = np.random.randint(0, 10, 20)
array([8, 7, 3, 8, 0, 9, 3, 0, 5, 6, 6, 9, 4, 4, 5, 4, 5, 3, 5, 2])

np.argmax(a)
5
np.argmin(a)
4
np.nonzero(a)
(array([ 0,  1,  2,  3,  5,  6,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
        19]),)

np.count_nonzero(a)
18

fuente

Publicado 33 artículos originales · ganado elogios 1 · vistas 1237

Supongo que te gusta

Origin blog.csdn.net/weixin_44783002/article/details/104718186
Recomendado
Clasificación