English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O ndarray array pode ser criado não apenas usando o construtor de ndarray básico, mas também pelas seguintes maneiras:
O método numpy.empty é usado para criar um array não inicializado com forma específica (shape), tipo de dados (dtype):
numpy.empty(shape, dtype = float, order = 'C')
Retorna um novo array com a forma e o tipo fornecidos, sem inicializar os itens.
Parâmetro
prototype - Forma do array de zeros.dtype(opcional) - Tipo de dados de saída necessários para o array, por exemplo numpy.int8. valor padrão é numpy.float64。order(opcional, padrão: 'C') - Existem duas opções "C" e "F", que representam, respectivamente, a prioridade da linha e da coluna, na ordem de armazenamento dos elementos na memória do computador.
Retorno: Um array com a forma do array fornecido, mas sem inicializar o tipo de dados e a ordem (aleatórios).
>>> 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 retorna um novo array com a mesma forma e tipo do array fornecido.
numpy.empty_like(prototype, dtype=None, order='K', subok=True, shape=None)
Retorna um novo array com a mesma forma e tipo que o array fornecido
Parâmetro
prototype - A forma e o tipo do array de origem definem essas mesmas propriedades do array retornado.dtype - Cobertura do tipo de dados do resultado.order - Cobertura do layout de memória do resultado. Se prototypeFortran contínuo, 'A' representa 'F', caso contrário, 'C'.'K' representa que o layout do prototype deve coincidir o mais possível.subok - Se for True, o array recém-criado usará o subtipo de 'a', caso contrário, será o array de classe base. O padrão é True.shape - Cobertura da forma do resultado. Se order = 'K' e o número de dimensões não mudar, tentará manter a ordem, caso contrário, sugere order = 'C'.
Retorno: Novo array com a mesma forma e tipo que o array fornecido.
>>> import numpy as np >>> a = (1,2,3], [4,5,6]) # a é um array-like >>> np.empty_like(a) array([[ 6917529027641081856, -6917520256071729910, 98], [ 0, 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])
Cria um array de tamanho especificado, preenchido com zeros:
numpy.zeros(shape, dtype = float, order = 'C')
Parâmetro
shape - Forma do array de zeros.dtype - Tipo de dados de saída necessários para o array, por exemplo numpy.int8. valor padrão é numpy.float64。order - {'C', 'F'}, opcional, padrão: 'C', indica que os dados sejam armazenados na memória em estilo de linha (C) ou coluna (Fortran).
Retorno: Array de zeros com a forma, tipo e ordem do array fornecido.
>>> import numpy as np >>> np.zeros(5) array([0., 0., 0., 0., 0.]) ,), dtype=[('x', 'i5,), dtype=int) array([0, 0, 0, 0, 0]) ,), dtype=[('x', 'i2, 1)) [0.]]) >>> np.zeros(( >>> s = (2,2) ,), dtype=[('x', 'i2,), dtype=[('x', 'i4'), ('y', 'i4')] # dtype personalizado array([(0, 0), (0, 0)], dtype=[('x', '<i4'' ),="" ('y',="" '
zeros_like retorna um array de zeros com a mesma forma e tipo do array fornecido.
Parâmetro
a - Uma propriedade que limita a forma e o tipo de dados do array retornado.dtype - O tipo de dados de saída necessário para o array.order - Cobertura do layout de memória do resultado.subok - Se for True, o array recém-criado usará o subtipo de 'a', caso contrário, será o array de classe base. O padrão é True.shapeint - Cobertura da forma do resultado.Retorna um array com a mesma forma e tipo de zero.
>>> 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.])
Cria um array com a forma especificada, os elementos do array são preenchidos com 1 para preencher:
numpy.ones(shape, dtype=None, order='C')
Parâmetro
shape - Forma do array.dtype - Tipo de dados, opcionalorder - 'C' para arrays de linha de C ou 'F' para arrays de coluna do 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 retorna um array com a mesma forma e tipo de dados do array fornecido.
numpy.ones_like(a, dtype=None, order='K', subok=True, shape=None)
Parâmetro
a - Uma propriedade que limita a forma e o tipo de dados do array retornado.dtype - O tipo de dados de saída necessário para o array.order - Cobertura do layout de memória do resultado.subok - Se for True, o array recém-criado usará o subtipo de 'a', caso contrário, será o array de classe base. O padrão é True.shape - Cobertura da forma do resultado.
Retorna um array com a mesma forma e tipo de zero.
>>> 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)
Retorna os valores de intervalo uniforme dados.
Gera valores dentro do intervalo semi-aberto (isto é, o intervalo que inclui start mas não inclui stop). Para parâmetros inteiros, esta função é equivalente à função integrada do Python range, mas retorna ndarray em vez de lista. [start, stop)
Parâmetro
start - O início do intervalo. O intervalo inclui o valor. O valor inicial padrão é 0.stop - O intervalo termina. Este intervalo não inclui o valor, a menos que em alguns casos, o step não seja um inteiro e a arredondamento de ponto flutuante afete o comprimento de out.step - O espaçamento entre os valores. Para qualquer saída, é a distância entre os dois valores adjacentes, o passo padrão é1。dtype - Tipo de dados do array de saída.
Retorno: Array de valores com 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])
A função numpy.linspace é usada para criar um array unidimensional, onde o array é composto por uma sequência aritmética, no formato a seguir:
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
Parâmetro
start - O valor inicial da sequência.stop - O valor final da sequência, se endpoint for true, este valor está incluído na sequência.num - A quantidade de amostras de passo igual a ser gerada, o valor padrão é50。endpoint - Este valor é true quando a sequência contém o valor stop, caso contrário, não contém, o padrão é True.retstep - Se for True, o array gerado mostrará espaçamento, caso contrário, não mostrará.dtype - O tipo de dados do ndarray.
A seguir, o exemplo usa três parâmetros, configurando o ponto de partida como 1 ,o ponto final é 10,o número de séries é 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.]]
Conversão direta dos tipos de dados básicos do Python (como lista, tupla, etc.) para gerar 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.asarraysemelhante numpy.arrayMas o parâmetro numpy.asarray tem apenas três, dois a menos do que numpy.array.
numpy.asarray(a, dtype = None, order = None)
Parâmetro
a - Parâmetros de entrada de qualquer forma, podem ser, lista, tupla da lista, tupla, tupla da tupla, lista da tupla, array multidimensional.dtype - Tipo de dados, opcional.order - A quantidade de amostras de passo igual a ser gerada, o valor padrão é50。endpoint - Opcional, há duas opções "C" e "F", que representam respectivamente, a prioridade de linha e a prioridade de coluna, a ordem de armazenamento dos elementos na memória do computador.
>>> 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 é usado para implementar arrays dinâmicos.
O numpy.frombuffer aceita o parâmetro de entrada buffer, lendo em forma de fluxo e convertendo para objeto ndarray.
numpy.frombuffer(buffer, dtype=float, count= -1, offset = 0)
Parâmetro
buffer - Pode ser qualquer objeto, lido em forma de fluxo.dtype - Retorna o tipo de dados do array, opcionalcount - Número de dados lidos, o padrão é-1,ler todos os dados.offset - Posição de início da leitura, o padrão é 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']
O método numpy.fromiter constrói um objeto ndarray a partir de um objeto iterável, retornando um array unidimensional.
numpy.fromiter(iterable, dtype, count=-1)
Parâmetro
iterable - Objeto iterável.dtype - Retorna o tipo de dados do arraycount - Número de dados lidos, o padrão é-1,ler todos os dados.
>>> import numpy as np >>> # Usar função range para criar objeto lista >>> list=range(5) >>> it=iter(list) >>> x=np.fromiter(it, dtype=float) >>> print(x) [0. 1. 2. 3. 4.]
Para treinar o modelo de maneira mais eficaz e melhorar o desempenho do modelo, algumas inicializações precisam atender a certas condições, como distribuição normal ou uniforme, etc. Aqui são apresentados vários métodos comuns do módulo np.random, conforme a tabela a seguir.
Função | Descrição |
np.random.random | 生成0到1之间的随机数 |
np.random.uniform | 生成均勻分布的随机数 |
np.random.randn | 生成标准正态的随机数 |
np.random.randint | 生成随机的整数 |
np.random.normal | 生成正态分布 |
np.random.shuffle | 随机打乱顺序 |
np.random.seed | 设置随机数种子 |
random_sample | 生成随机的浮点数 |
>>> import numpy as np >>> # 生成全是 0 的 3x3 矩阵 >>> nd5 =np.zeros([3, 3]) >>> print("nd5 =\n", nd5) nd5 = [[0. 0. 0.]] [0. 0. 0.] [0. 0. 0.]] >>> # 生成全是 1 的 3x3 矩阵 >>> nd6 = np.ones([3, 3]) >>> print("nd6 =\n", nd6) nd6 = [[1. 1. 1.] [1. 1. 1.] [1. 1. 1.]] >>> >>> # 生成 4 阶的单位矩阵 >>> 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.]] >>> # 生成 4 阶对角矩阵 >>> 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]]