directorio
1. Introducción
NumPy (Numerical Python) es un código abierto Python extensiones computación científica se utiliza principalmente para procesar la matriz matriz de cualquier dimensión, generalmente calculado para la misma tarea, Python NumPy de utilizar directamente la estructura de datos básica debe ser simple, eficiente y más. Instalación pip install numpy
de comandos.
2. uso
2.1 ndarray
ndarray es decir, n tipo de matriz dimensión, es una colección de mismo tipo de datos, etiquetado 0 para indexar los elementos de inicio en un conjunto.
Se puede utilizar para crear una matriz de NumPy método de matriz, con el siguiente formato:
array (p_object, dtype = Ninguno, copiar = True, orden = 'K', probado = False, ndmin = 0)
-
p_object: matriz anidada o el número de columnas
-
dtype: Tipo de datos del elemento de matriz
-
copiar: si desea copiar
-
orden: Crear un array estilo, C es la dirección de la fila, F es la dirección de la columna, A es una dirección arbitraria (por defecto)
-
subok: un retorno predeterminado consistente con una matriz de clase base
-
ndmin: generar una dimensión más pequeña de la matriz
Por supuesto, el método también puede ser usado arange siguiente ejemplos se ven en el uso específico.
Creación de una matriz
Buscar la forma de crear una matriz unidimensional
import numpy as np
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array(range(1, 6))
arr3 = np.arange(1, 6)
print (arr1)
print (arr2)
print (arr3)
Mira cómo crear matrices multidimensionales, matriz de dos dimensiones, por ejemplo,
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6]])
print(arr)
Las propiedades comunes
A modo de ejemplo vistazo a las propiedades comunes de objetos ndarray
import numpy as np
arr = np.array([1, 2, 3])
# 元素类型
print(arr.dtype)
# 形状
print(arr.shape)
# 元素个数
print(arr.size)
# 维度
print(arr.ndim)
# 每个元素大小(字节)
print(arr.itemsize)
Cambiar la forma de la matriz
import numpy as np
arr = np.arange(30)
print(arr)
# 变成二维数组
arr.shape = (5, 6)
print(arr)
# 变成三维数组
arr = arr.reshape((2, 3, 5))
print(arr)
2.2 Tipos de datos
Por el aspecto siguiente tabla NumPy de tipos de datos comunes.
tipo | descripción |
---|---|
En t_ | El tipo de número entero predeterminado (similar al lenguaje C de largo, int32 o Int64) |
INTC | El mismo tipo C y int, int es generalmente 64 o int32 |
intp | Para el tipo de número entero del índice (un ssize_t C-como, en general, sigue siendo int32 o Int64) |
INT8 | Byte (-128 a 127) |
Int16 | Entero (-32768-32.767) |
int32 | Entero (desde -2147483648 hasta 2147.483647 millones) |
Int64 | Entero (-9223372036854775808-9223372036854775807) |
uint8 | número entero sin signo (0 a 255) |
uint16 | número entero sin signo (0 a 65535) |
uint32 | número entero sin signo (0 a 4294967295) |
uint64 | número entero sin signo (0 a 18446744073709551615) |
bool_ | Tipo de datos booleano (verdadero o falso) |
flotador_ | tipo float64 de taquigrafía |
float16 | formato de coma flotante de precisión media, que comprende: un bit de signo, de cinco bits de exponente, 10 bits de la mantisa |
float32 | la precisión de un solo número de coma flotante, que comprende: un bit de signo, ocho exponente, 23 bits de la mantisa |
float64 | Doble precisión en coma flotante, que comprende: un bit de signo, 11 bits de exponente, 52 bits de mantisa |
complejo_ | complex128 tipo taquigrafía, es decir, una pluralidad de 128 bits |
complex64 | , Número de coma flotante Complex 32 bits representa bis (número real parte y parte número imaginario) |
complex128 | , Número de coma flotante Complex 64 bits representa bis (número real parte y parte número imaginario) |
Cómo modificar el tipo de datos de vista con el ejemplo.
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([1.111, 2.222, 3.333])
# 当前数据类型
print(arr1.dtype)
# 修改数据类型
arr1 = arr1.astype(np.int64)
print(arr1.dtype)
# 保留一位小数
arr2 = np.round(arr2, 1)
print(arr2)
2.3 índice y en rodajas
NumPy soportan indexación matriz, operación de corte, también puede ser iterativo, vistazo a la matriz unidimensional.
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
print(arr[3])
# 修改元素值
arr[3] = 10
print(arr[3])
print(arr[2:])
print(arr[2:4])
print(arr[4:])
for i in arr:
print(i)
Mira estas operaciones de matrices multidimensionales.
import numpy as np
arr = np.arange(12).reshape(3, 4)
print(arr)
# 取某一个值
print(arr[2, 3])
# 取多个不连续的值
print(arr[[0, 2],[1, 3]])
# 取一行
print(arr[0])
# 连续取多行
print(arr[1:])
# 取不连续的多行
print(arr[[0, 2]])
# 取一列
print(arr[:, 0])
# 连续取多列
print(arr[:, 2:])
# 取不连续的多列
print(arr[:, [0, 2]])
2.4 copia de vista
Ver (copia superficial) es sólo una referencia a los datos originales se puede acceder a través de esta referencia, la operación de los datos originales, si modificamos la vista, que afectará a los datos originales, porque poco profunda copia de memoria compartida.
Copiar (en profundidad) es una copia completa de los datos, si hacemos cambios en la copia, que no afectará a los datos originales, debido copia profunda no se comparte memoria.
El método vista llamada ndarray () producirá una vista, lo siguiente a modo de ejemplo mirada.
import numpy as np
a = np.arange(6).reshape(2,3)
# 创建视图
b = a.view()
print('a的id:', id(a))
print('b的id:', id(b))
# 修改 b 的形状
b.shape = 3,2
print('a的形状:')
print(a)
print('b的形状:')
print(b)
print(a is b)
Llamar al método de copia ndarray () producirá una copia de lo siguiente a modo de ejemplo a la vista.
import numpy as np
a = np.arange(1, 6)
# 创建副本
b = a.copy()
print(a is b)
b[1] = 10
print(a[1])
print(b[1])
2,5 eje Concept
NumPy es simple en la dirección del eje se entiende que el uso de la tecnología digital 0,1,2 dicho eje una matriz unidimensional de sólo 0, 0, 1 array eje de dos dimensiones, una matriz tridimensional ha 0,1,2 eje, eje entendido concepto correspondiente puede ayudarnos a hacer los cálculos correspondientes.
2.6 Funcionamiento básico
Operación entre la matriz y lo digital
Además de una mirada entre la matriz y el número, restar, multiplicar, dividir y multiplicar.
import numpy as np
arr = np.arange(12).reshape(3, 4)
print(arr + 3)
print(arr - 1)
print(arr * 2)
print(arr / 3)
Cooperación entre las matrices y matrices
Mira la operación de la matriz y entre matrices.
import numpy as np
# 相同行数,相同列数
a = np.arange(12).reshape(3, 4)
b = np.arange(20, 32).reshape(3, 4)
print(a + b)
print(b * a)
# 相同行数
c = np.arange(12).reshape(3, 4)
d = np.arange(3).reshape(3, 1)
print(c + d)
print(c - d)
# 相同列数
e = np.arange(12).reshape(4, 3)
f = np.arange(3).reshape(1, 3)
print(e * f)
print(e - f)
Matemáticas común
import numpy as np
arr = np.array([[33, 55], [11, 66], [22, 99]])
print(arr)
# 最大值
print(np.max(arr))
# 最小值
print(np.min(arr))
# 某一轴上的最大值
print(np.max(arr, 1))
# 某一轴上的最小值
print(np.min(arr, 1))
# 平均值
print(np.mean(arr))
# 某一行、一列的平均值
print(np.mean(arr, axis=1))
# 最大值索引
print(np.argmax(arr))
print(np.argmax(arr, axis=1))
# 最小值索引
print(np.argmin(arr))
print(np.argmin(arr, axis=1))
# 极差
print(np.ptp(arr))
print(np.ptp(arr, axis=1))
# 方差
print(np.var(arr))
# 标准差
print(np.std(arr))
# 中位数
print(np.median(arr))
2.7 Operaciones comunes
operación de adición
NumPy el método append () puede añadir el valor de la final de la matriz, la operación asignada a toda la matriz, y copiar la matriz original a la nueva matriz, la necesidad de asegurar la operación de las dimensiones características determinadas de entrada, usando el siguiente aspecto ejemplar.
import numpy as np
arr = np.array([[1, 3, 5], [2, 4, 6]])
# 添加元素
print(np.append(arr, [1, 1, 3]))
# 沿 0 轴添加元素
print(np.append(arr, [[1, 1, 3]], axis=0))
# 沿 1 轴添加元素
print(np.append(arr, [[1, 1, 3], [2, 1, 5]], axis=1))
También podemos usar el inserto () operación método Add, que se inserta en un valor de matriz axial a la vanguardia índice dado dado, utilizando el siguiente aspecto ejemplar.
import numpy as np
arr = np.array([[1, 3, 5], [2, 4, 6]])
# 添加元素
print(np.insert(arr, 1, [1, 1, 3]))
# 沿 0 轴添加元素
print(np.insert(arr, 1, [1, 1, 3], axis=0))
# 沿 1 轴添加元素
print(np.insert(arr, 1, [1, 5], axis=1))
supresión
NumPy el borrado () puede eliminar una matriz, utilice el siguiente vistazo a un ejemplo.
import numpy as np
arr = np.array([[1, 3, 5], [2, 4, 6]])
# 删除元素
print(np.delete(arr, 1))
# 沿 0 轴删除元素
print(np.delete(arr, 1, axis=0))
# 沿 1 轴删除元素
print(np.delete(arr, 1, axis=1))
operación de eliminación de datos duplicados
NumPy el método único () puede eliminar elementos repetitivos en la matriz.
import numpy as np
arr = np.array([1, 3, 5, 2, 4, 6, 1, 5, 3])
# 去除重复元素
print(np.unique(arr))
# 去重数组的索引数组
u, indices = np.unique(arr, return_index=True)
print(indices)
# 去重元素的重复数量
u, indices = np.unique(arr, return_counts=True)
print(indices)