Análisis de datos de Python (a): Fundamentos NumPy

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 numpyde 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)

Publicado 64 artículos originales · ganado elogios 1276 · Vistas de 300.000 +

Supongo que te gusta

Origin blog.csdn.net/ityard/article/details/104727326
Recomendado
Clasificación