How to create an array with value one?

Asked

Viewed 361 times

1

Hello

I would like to know if there is a way and which would be the most correct way to create a list (or an array) with the ones filled with the value 1 given the length of another list. Exactly what numpy.ones does (or numpy.zeros with zero), only in a very manual way, without using any packages or artifice.

I don’t have any code because it was a question I had during my studies and I couldn’t find something like that elsewhere.

Thank you !

2 answers

7

Can you replicate the numpy.ones, for example using:

n = 10 # tamanho do array
arr = [1] * n
#[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

1

If you are looking to fill one numpy.ndarray with a specific value use the method fill(), this method fills the matrix with a scalar value.

Examples from the documentation itself:

>>> a = np.array([1, 2])
>>> a.fill(0)
>>> a
array([0, 0])
>>> a = np.empty(2)
>>> a.fill(1)
>>> a
array([1.,  1.])

Example translated and obtained in source of the methods ones() and zeros()

def ones(shape, dtype=None, order='C'):
    """
     Matriz de uns.
         Retorna uma matriz de determinada forma e tipo, preenchida com uns.
         Parâmetros
         ----------
         shape: {sequência de entradas, int}
             Forma da matriz
         dtype: tipo de dados, opcional
             O tipo de dados desejado para a matriz, o padrão é np.float64.
         order: {'C', 'F'}, opcional
             Se a matriz é armazenada em ordem C ou Fortran-contígua,
             o padrão é 'C'.
         Retorno
         -------
         retorno: matriz
             Matriz de formas, tipos e ordens determinados.
         Veja também
         --------
         ones: matriz de uns.
         matlib.zeros: matriz zero.
         Notas
         -----
         Se `shape` tiver o comprimento um, ou seja,` `(N,)` `ou for um escalar` `N``,
         `out 'se torna uma matriz de linha única de forma` `(1, N)` `.
         Exemplos
         --------
    >>> np.matlib.ones((2,3))
    matrix([[1.,  1.,  1.],
            [1.,  1.,  1.]])
    >>> np.matlib.ones(2)
    matrix([[1.,  1.]])
    """
    a = ndarray.__new__(matrix, shape, dtype, order=order)
    a.fill(1)
    return a

def zeros(shape, dtype=None, order='C'):
    """
     Matriz de zeros.
     Retorne uma matriz de determinada forma e tipo, preenchida com zeros.
         Parâmetros
         ----------
         shape: int ou sequência de ints
             Forma da matriz
         dtype: tipo de dados, opcional
             O tipo de dados desejado para a matriz, o padrão é float.
         order: {'C', 'F'}, opcional
             Se o resultado deve ser armazenado em ordem C ou Fortran-contígua,
             o padrão é 'C'.
         Devoluções
         -------
         saída: matriz
             Matriz zero de determinada forma, tipo e ordem.
         Veja também
         --------
         numpy.zeros: Função de matriz equivalente.
         matlib.ones: Retorna uma matriz de unidades.
         Notas
         -----
         Se `shape` tiver o comprimento um, ou seja,` `(N,)` `ou for um escalar` `N``,
         `out 'se torna uma matriz de linha única de forma` `(1, N)` `.
         Exemplos
         --------

    >>> import numpy.matlib
    >>> np.matlib.zeros((2, 3))
    matrix([[0.,  0.,  0.],
            [0.,  0.,  0.]])
    >>> np.matlib.zeros(2)
    matrix([[0.,  0.]])
    """
    a = ndarray.__new__(matrix, shape, dtype, order=order)
    a.fill(0)
    return a

Browser other questions tagged

You are not signed in. Login or sign up in order to post.