Tengo un sabroso conjunto vacío llamado fajita:

fajita = np.empty(2)
array([  2.00000000e+00,   1.72723382e-77])

Cuando uso:

np.insert(fajita,0,[2,2])

Entiendo:

array([  2.00000000e+00, 2.00000000e+00,   2.00000000e+00,   1.72723382e-77])

El problema aquí es que solo quiero los 2 valores que inserté, no quiero mantener los valores anteriores de la matriz vacía. La salida esperada debe ser una matriz con solo 2 valores insertados. Algo como:

array([  2.00000000e+00, 2.00000000e+00])
1
thomas.mac 28 oct. 2017 a las 10:10

4 respuestas

La mejor respuesta

Una forma de hacerlo con empty y la configuración de corte:

import numpy as np
fajita = np.empty(2)
fajita[:] = [2, 2]

Otra forma de hacerlo con fill:

fajita = np.empty(2)
fajita.fill(2)

Otra solución sería crear la matriz directamente con los valores que desea (creo que esto es lo que debe hacer, y esa es una de las razones por las que no entendí su pregunta al principio):

fajita = np.array([2,2])
4
Unatiel 28 oct. 2017 a las 07:52

O:

arr = np.empty(0)  # you want it to contain 0 elements
np.insert(arr, 0, [2,2])
0
Eric 28 oct. 2017 a las 17:23

Puedes hacer lo siguiente en mi opinión:

  1. Cree una matriz vacía del tamaño que necesita (quizás un poco más en caso de que no esté seguro)

  2. Inserte los datos en la matriz donde desea que estén El siguiente ejemplo inserta secuencialmente los datos (por ejemplo, al leer varios archivos y agregar los datos de los archivos a la matriz)

presized_array = np.empty(100) #presized empty arrray of size 100
data_chunk_one = np.arange(10) #dummy data that we want to insert
presized_array[0:9] = data_chunk_one #add the first data chunk

data_chunk_two = np.arange(10) #dummy data that we want to insert
presized_array[10:20] = data_chunk_two #add the second data chunk

... y así por cada trozo adicional

0
vahdet 20 nov. 2018 a las 15:28

Espero que esto ayude

# When you want to replace your empty array/matrix
fajita = [2.00000000e+00, 2.00000000e+00]
1
pissall 28 oct. 2017 a las 07:22