English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
El array ndarray se puede crear no solo mediante el constructor subyacente ndarray, sino también de las siguientes formas:
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]) >>>
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])
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='',"''
zeros_like devuelve un array de ceros con la misma forma y tipo que el array dado.
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.])
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.]])
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([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)]
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.]]
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 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)
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']
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]
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ón | Descripción |
np.random.random | generar entre 0 y1entre números aleatorios |
np.random.uniform | generar números aleatorios uniformes |
np.random.randn | generar números aleatorios normales estándar |
np.random.randint | generar números enteros aleatorios |
np.random.normal | generar distribución normal |
np.random.shuffle | mezclar orden aleatorio |
np.random.seed | establecer la semilla de números aleatorios |
random_sample | generar 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]]