English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

创建数组NumPy

El array ndarray se puede crear no solo mediante el constructor subyacente ndarray, sino también de las siguientes formas:

numpy.empty

El método numpy.empty se utiliza para crear un array no inicializado con una forma (shape), tipo de datos (dtype) especificados:

numpy.empty(shape, dtype = float, order = 'C')

Devuelve un nuevo array con la forma y el tipo dados, sin inicializar los elementos.

Parámetro

prototype - Forma del array de ceros.dtype(opcional) - Tipo de datos de salida requerido para el array, por ejemplo numpy.int8. Valor por defecto: numpy.float64。order(opcional, por defecto: 'C') - Hay dos opciones, "C" y "F", que representan, respectivamente, el orden de las filas y el orden de las columnas, la secuencia en la que se almacenan los elementos en la memoria del ordenador.

Valor devuelto: array con la forma del array dado, pero sin inicializar los datos (de cualquier tipo).

>>> import numpy as np
>>> np.empty([2, 2)]
array([[1, 0.],
       [0., 1.]])
>>> np.empty([2, 2], dtype=int)
array([[4607182418800017408, 0],
       [ 0, 4607182418800017408])
>>>
Nota:Nota: los elementos del array son valores aleatorios, ya que no se han inicializado.

numpy.empty_like

numpy.empty devuelve un nuevo array con la forma y el tipo del array dado.

numpy.empty_like(prototype, dtype=None, order='K', subok=True, shape=None)

Devuelve un nuevo array con la misma forma y tipo que el array dado

Parámetro

prototype - La forma y el tipo del array de origen definen estas mismas propiedades del array devuelto.dtype - Cubre el tipo de datos del resultado.order - Cubre la disposición en memoria del resultado. Si prototypeFortran es contínuo, 'A' representa 'F', de lo contrario, es 'C'.'K' representa que el prototype se ajusta lo más posible a la disposición.subok - Si es verdadero, el array recién creado usará el subclase tipo de 'a', de lo contrario será el array de clase base. El valor predeterminado es verdadero.shape - Cubre la forma del resultado. Si order='K' y el número de dimensiones no cambia, se intentará mantener el orden; de lo contrario, implica order='C'.

Valor devuelto: Un array de datos no inicializados (de cualquier tipo) con la forma y tipo del array original.

>>> import numpy as np
>>> a = (1,2,3], [4,5,6]) ''#'' a es un array-like
>>> np.empty_like(a)
array([[ 6917529027641081856, -6917520256071729910, 98],
       [ '', 0, 0]]
>>> a = np.array([1., 2., 3.], [4.,5.,6.]])
>>> np.empty_like(a)
array([[ 2.68156159e+154, 2.68156159e+154, 3.32479618e+181],
       [ 1.78476163e+185, -1.73059781e-077, 4.21535080e-309])

numpy.zeros

Crea un array de tamaño especificado, lleno de ceros:

numpy.zeros(shape, dtype=float, order='C')

Parámetro

shape - Forma del array de ceros.dtype - Tipo de datos de salida requerido para el array, por ejemplo numpy.int8. Valor por defecto: numpy.float64。order - ''{'C', 'F'}'', opcional, por defecto: ''C'', indica que los datos se almacenan en memoria en orden de filas (C) o de columnas (Fortran).

Valor devuelto: Un array de ceros con la forma, tipo y orden del array dado.

>>> import numpy as np
>>> np.zeros(5)
array([0., '', 0., '', 0., ''])
>>> np.zeros(5,), dtype = int)
array([0, '', 0, '', 0, ''])
>>> np.zeros(2, 1))
array([[0.],
       [0.]]
>>> s = (2,2)
>>> np.zeros(2,), dtype=[('x', ''i'')4''), ('y', ''i'')4'')]'' # ''custom'' dtype
array([(0, ''),(0, '')], dtype=[('x', '''<i')]) ''#''dtype personalizado4''),=""''y='',"''

numpy.zeros_like

zeros_like devuelve un array de ceros con la misma forma y tipo que el array dado.

numpy.zeros_like(a, dtype=None, order='K', subok=True, shape=None)[fuente]

Parámetro

a - Una propiedad que limita la forma y el tipo de datos del array devuelto.dtype - El tipo de datos requerido para el array.order - Cubre la disposición en memoria del resultado.subok - Si es verdadero, el array recién creado usará el subclase tipo de 'a', de lo contrario será el array de clase base. El valor predeterminado es verdadero.shapeint - Cubre la forma del resultado.

Devuelve un array con ceros de la misma forma y tipo.

>>> import numpy as np
>>> x = np.arange(6)
>>> x = x.reshape((2, 3))
>>> print(x)
[[0 1 2]
 [3 4 5]]
>>> np.zeros_like(x)
array([[0, 0, 0],
       [0, 0, 0]]
>>> y = np.arange(3, dtype = float)
>>> y
array([0., 1., 2.])
>>> np.zeros_like(y)
array([0., 0., 0.])

numpy.ones

Crear un array con la forma especificada, los elementos del array se llenan con 1 para llenar:

numpy.ones(shape, dtype = None, order = 'C')

Parámetro

shape - Forma del array.dtype - Tipo de datos, opcionalorder - 'C' se usa para el array de filas de C, o 'F' para el array de columnas de FORTRAN

>>> import numpy as np
>>> np.ones(5)
array([1., 1., 1., 1., 1.])
>>> np.ones(5,), dtype = int)
array([1, 1, 1, 1, 1)]
>>> np.ones(2, 1))
array([[1.,
       [1.]])
>>> s = (2,2)
>>> np.ones(s)
array([[1., 1.,
       [1., 1.]])

numpy.ones_like

zeros_like devuelve un array con la misma forma y tipo que el array dado.

numpy.ones_like(a, dtype = None, order = 'K', subok = True, shape = None)

Parámetro

a - Una propiedad que limita la forma y el tipo de datos del array devuelto.dtype - El tipo de datos requerido para el array.order - Cubre la disposición en memoria del resultado.subok - Si es verdadero, el array recién creado usará el subclase tipo de 'a', de lo contrario será el array de clase base. El valor predeterminado es verdadero.shape - Cubre la forma del resultado.

Devuelve un array con ceros de la misma forma y tipo.

>>> import numpy as np
>>> x = np.arange(6)
>>> x = x.reshape((2, 3))
>>> x
array([[0, 1, 2],
       [3, 4, 5])
>>> np.ones_like(x)
array([[1, 1, 1],
       [1, 1, 1])
>>> y = np.arange(3, dtype = float)
>>> y
array([0., 1., 2.])
>>> np.ones_like(y)
array([1., 1., 1.])

numpy.arange

numpy.arange([start],stop,[step],dtype = None)

Devuelve los valores de intervalo uniforme dados.
Generar valores dentro del intervalo semiabierto (es decir, el intervalo que incluye start pero no incluye stop). Para parámetros enteros, esta función es equivalente a la función integrada de Python range, pero devuelve ndarray en lugar de lista. [start, stop)

Parámetro

start - El inicio del intervalo. El intervalo incluye este valor. El valor de inicio predeterminado es 0.stop - El intervalo finalizado. Este intervalo no incluye este valor, a menos que en ciertos casos, step no sea un entero y la redondeo de coma flotante afecte la longitud de out.step - El espacio entre valores. Para cualquier salida, es la distancia entre dos valores adyacentes, el paso predeterminado es1。dtype - Tipo de datos del array de salida.

Valor de retorno: array de valores con intervalos uniformes.

>>> import numpy as np
>>> np.arange(3)
array([0., 1, 2)]
>>> np.arange(3.0)
array([0., 1., 2.])
>>> np.arange(3,7)
array([3, 4, 5, 6)]
>>> np.arange(3,7,2)
array([3, 5)]

numpy.linspace

La función numpy.linspace se utiliza para crear un array unidimensional, el array es una serie de valores equidistantes, con el siguiente formato:

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

Parámetro

start - El valor de partida de la serie.stop - El valor final de la serie. Si endpoint es true, este valor se incluye en la serie.num - La cantidad de muestras de igual paso a generar, por defecto es50.endpoint - Si este valor es true, la serie contiene el valor stop, de lo contrario no lo contiene, el valor predeterminado es True.retstep - Si es True, se mostrarán los intervalos en el array generado, de lo contrario no se mostrarán.dtype - El tipo de datos del ndarray.

El siguiente ejemplo utiliza tres parámetros, configurando el punto de partida como 1 El punto de partida es 10El número de series es 10。

>>> import numpy as np
>>> a = np.linspace(1,10,10)
>>> print(a)
[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10]
>>> a = np.linspace(10, 20, 5, endpoint = False)
>>> print(a)
[10. 12. 14. 16. 18]
>>> a = np.linspace(1,10,10, retstep = True)
>>> print(a)
(array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10).reshape([ 1.0)
>>> b = np.linspace(1,10,10).reshape([10,1)]
>>> print(b)
[[ 1]
 [ 2]
 [ 3]
 [ 4]
 [ 5]
 [ 6]
 [ 7]
 [ 8]
 [ 9]
 [10.]]

numpy.asarray

Convierte directamente los tipos de datos básicos de Python (como listas, tuplas, etc.) en ndarray:

>>> import numpy as np
>>> ls1 = [10, 42, 0, -17, 30]
>>> nd1 =np.array(ls1)
>>> print(nd1)
[ 10 42 0 -17 30]
>>>
>>> print(type(nd1))

numpy.asarraysimilar numpy.array, pero el parámetro numpy.asarray tiene solo tres, dos menos que numpy.array.

numpy.asarray(a, dtype = None, order = None)

Parámetro

a - Parámetros de entrada de cualquier forma, pueden ser lista, tupla de lista, tupla, tupla de tupla, lista de tuplas, array multidimensional.dtype - Tipo de datos, opcional.order - La cantidad de muestras de igual paso a generar, por defecto es50.endpoint - Opcional, hay dos opciones "C" y "F", que representan respectivamente el orden de las filas y el orden de las columnas, el orden de almacenamiento de los elementos en la memoria del ordenador.

>>> import numpy as np
>>> x = [1,2,3]
>>> a = np.asarray(x)
>>> a
array([1, 2, 3)]
>>> x = (1,2,3)
>>> a = np.asarray(x)
>>> print(a)
[1 2 3]
>>> x = [(1,2,3),(4,5)]
>>> a = np.asarray(x)
>>> print(a)
[(1, 2, 3) (4, 5)]
>>> x = [1,2,3]
>>> a = np.asarray(x, dtype=float)
>>> print(a)
[1. 2. 3]

numpy.frombuffer

numpy.frombuffer se utiliza para implementar arrays dinámicos.
El método numpy.frombuffer acepta el parámetro buffer, se lee en forma de flujo y se convierte en un objeto ndarray.

numpy.frombuffer(buffer, dtype=float, count= -1, offset = 0)
Nota:Cuando buffer es una cadena de caracteres, Python3 Por defecto, str es de tipo Unicode, por lo que debe convertirse a bytestring añadiendo b al principio del str.

Parámetro

buffer - Puede ser cualquier objeto, se leerá en forma de flujo.dtype - Devuelve el tipo de datos del array, opcionalcount - El número de datos leídos, por defecto es-1,leer todos los datos.offset - La posición de inicio de lectura, por defecto es 0.

>>> import numpy as np
>>> s = b'Hello w3codebox'
>>> a = np.frombuffer(s, dtype='S1)
>>> print(a)
[b'H' b'e' b'l' b'l' b'o' b' ' b'L' b'i' b'd' b'i' b'h' b'u' b'o']

numpy.fromiter

El método numpy.fromiter crea un objeto ndarray a partir de un objeto iterable, devolviendo un array unidimensional.

numpy.fromiter(iterable, dtype, count=-1)

Parámetro

iterable - Objeto iterable.dtype - Devuelve el tipo de datos del arraycount - El número de datos leídos, por defecto es-1,leer todos los datos.

>>> import numpy as np
>>> # Usar la función range para crear un objeto de lista
>>> list=range(5)
>>> it=iter(list)
>>> x=np.fromiter(it, dtype=float)
>>> print(x)
[0. 1. 2. 3. 4]

Generación de matrices utilizando el módulo random

Para entrenar el modelo de manera más efectiva y mejorar el rendimiento del modelo, algunas inicializaciones deben cumplir ciertas condiciones, como distribuciones normales o uniformes, entre otras. Aquí se presentan varios métodos comunes del módulo np.random, como se muestra en la tabla siguiente.

FunciónDescripción
np.random.randomgenerar entre 0 y1entre números aleatorios
np.random.uniformgenerar números aleatorios uniformes
np.random.randngenerar números aleatorios normales estándar
np.random.randintgenerar números enteros aleatorios
np.random.normalgenerar distribución normal
np.random.shufflemezclar orden aleatorio
np.random.seedestablecer la semilla de números aleatorios
random_samplegenerar números flotantes aleatorios
>>> import numpy as np
>>> # generar todos 3x3 matriz
>>> nd5 =np.zeros([3, 3)]
>>> print("nd5 =\n", nd5)
nd5 =
 [[0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]]
>>> # generar todos 1 de 3x3 matriz
>>> nd6 = np.ones([3, 3)]
>>> print("nd6 =\n", nd6)
nd6 =
 [[1. 1. 1]
 [1. 1. 1]
 [1. 1. 1.]]
>>>
>>> # generar 4 matriz unitaria de orden
>>> nd7 = np.eye(4)
>>> print("nd7 =\n", nd7)
nd7 =
 [[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]
>>> # generar 4 matriz diagonal de orden
>>> nd8 = np.diag([1, 8, 3, 10)]
>>> print("nd8 =\n", nd8)
nd8 =
 [[ 1 0 0 0]
 [ 0 8 0 0]
 [ 0 0 3 0]
 [ 0 0 0 10]]