Resumen de uso del paquete numpy de Python

1. La diferencia entre array y mat

 

El paquete numpy en Python es un paquete de computación científica. Este paquete se usará en la mayoría de los casos al realizar cálculos científicos, pero se debe tener en cuenta la diferencia entre la matriz de dos funciones y el tapete. Es probable que el tipo de datos sea una causa difícil de encontrar de un error en el programa (auto-lección)

if __name__ == '__main__':
    # 一维
    two = [1, 3, 5, 2, 3, 2]
    two1 = np.array(two)
    print(two)  # [1, 3, 5, 2, 3, 2]  type:list
    print(two1)  # [1 3 5 2 3 2]  type:tuple
    print(two1.shape)  # (6,)
    print(two1.tolist())  # [1, 3, 5, 2, 3, 2]  type:list
    print(len(two1.tolist()))  # 6
    two2 = np.mat(two)
    print(two2)  # [[1 3 5 2 3 2]]  type:tuple
    print(two2.shape)  # (1, 6)
    print(two2.tolist())  # [[1, 3, 5, 2, 3, 2]]  type:list
    print(len(two2.tolist()))  # 1

Puede ver que la matriz y el tapete siguen siendo diferentes.

  • matriz:  convierte directamente la lista en una matriz, que incluye pero no se limita a una lista unidimensional
  • mat:  convierte los datos de la lista en una matriz

Entonces, después de usar el comando tolistpara convertir la matriz, se puede convertir al aspecto original, y el tipo de tapete será diferente del original.

La diferencia aquí es obvia en el caso unidimensional. No hay diferencia para la siguiente situación de latitudes múltiples.

Para listas multidimensionales, básicamente no hay diferencia entre matriz y mat: pero hay una diferencia en la operación *

 # 多维数组
    two = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], [17, 18, 19, 20]]
    two1 = np.array(two)
    print(two)
    '''
    [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], [17, 18, 19, 20]]
    '''
    print(two1)
    '''
    [[ 1  2  3  4]
     [ 5  6  7  8]
     [ 9 10 11 12]
     [13 14 15 16]
     [17 18 19 20]]
    '''
    print(two1.shape)  # (5, 4)
    print(two1.tolist())
    '''
    [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], [17, 18, 19, 20]]
    '''
    print(len(two1.tolist()))  # 5
    two2 = np.mat(two)
    print(two2)
    '''
    [[ 1  2  3  4]
     [ 5  6  7  8]
     [ 9 10 11 12]
     [13 14 15 16]
     [17 18 19 20]]
    '''
    print(two2.shape)  # (5, 4)
    print(two2.tolist())
    '''
    [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], [17, 18, 19, 20]]
    '''
    print(len(two2.tolist()))  # 5

    two3=two1.T # 数组转置
    two4=two2.T # 矩阵转置
    Y=two1 * two1 # 数组相乘:各元素对应相乘
    '''
    [[  1   4   9  16]
     [ 25  36  49  64]
     [ 81 100 121 144]
     [169 196 225 256]
     [289 324 361 400]]
    '''
    #Y1 = np.dot(two1, two1)  # dot()函数是矩阵乘,而*则表示逐个元素相乘; 5x4 和 5x4 矩阵乘报错
    Y1 = np.dot(two1, two1.T) # 可以将two1其转置 然后矩阵乘
    '''
    [[  30   70  110  150  190]
     [  70  174  278  382  486]
     [ 110  278  446  614  782]
     [ 150  382  614  846 1078]
     [ 190  486  782 1078 1374]]
    '''
    Y4 = two2 * two2.T  # 矩阵相乘:等同于 p.dot(two2, two2.T)
    '''
    [[  30   70  110  150  190]
     [  70  174  278  382  486]
     [ 110  278  446  614  782]
     [ 150  382  614  846 1078]
     [ 190  486  782 1078 1374]]
    '''

Resumen: la diferencia entre matriz (matriz) y mat (matriz) en numpy

La matriz es una rama de la matriz, la matriz y la matriz son comunes en muchos casos, lo que sea que use es el mismo. Pero en este momento, el funcionario sugirió que si ambos son universales, entonces elija matriz, porque la matriz es más flexible y más rápida, muchas personas también traducen la matriz bidimensional en una matriz.
Pero la ventaja de la matriz es el símbolo de operación relativamente simple. Por ejemplo, la multiplicación de dos matrices usa el símbolo *, pero la multiplicación de la matriz no se puede usar de esta manera
. La ventaja de array.dot () La ventaja de la matriz no es solo representar dos dimensiones, sino también Representa 3, 4, 5 ... dimensiones, y en la mayoría de los programas de Python, la matriz también se usa más comúnmente.
 

Uso del método de puntos 

Blog de referencia:  https://www.cnblogs.com/Shawnyi/p/10370815.html

 

matriz (matriz) y mat (matriz)

      X [:, 0] es tomar los elementos de la columna 0 de todas las filas de la matriz X, y X [:, 1] es tomar los elementos de la columna 1 de todas las filas.

       X [:, m: n] toma los datos de las columnas m a n-1 en todas las filas de la matriz X, incluidas la izquierda pero no la derecha.

       X [0,:] es tomar todos los elementos de la fila 0 de la matriz X, X [1,:] es tomar todos los elementos de la fila 1 de la matriz X

    print(two1[0,:])
    '''
    [1 2 3 4]
    '''
    print(two2[:,0])
    '''
    [[ 1]
     [ 5]
     [ 9]
     [13]
     [17]]
    '''

 

110 artículos originales publicados · 22 alabanzas · 70,000 visitas

Supongo que te gusta

Origin blog.csdn.net/yangshaojun1992/article/details/104384633
Recomendado
Clasificación