将值插入np.empty数组,如何替换?

时间:2017-10-28 07:10:54

标签: python arrays numpy

我有一个名为fajita的美味空阵:

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

当我使用时:

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

我明白了:

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

这里的问题是我只想要插入2个值,我不想保留空数组中的先前值。预期输出应该是一个数组,只插入2个值。类似的东西:

array([  2.00000000e+00, 2.00000000e+00])

4 个答案:

答案 0 :(得分:4)

使用empty和切片设置执行此操作的一种方法:

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

使用fill执行此操作的另一种方法:

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

另一个解决方案是直接使用你想要的值创建数组(我认为这是你应该做的,这也是我一开始不理解你的问题的原因之一):

fajita = np.array([2,2])

答案 1 :(得分:1)

希望这有帮助

Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:504)
at java.lang.Integer.parseInt(Integer.java:527)

答案 2 :(得分:0)

或者:

arr = np.empty(0)  # you want it to contain 0 elements
np.insert(arr, 0, [2,2])

答案 3 :(得分:0)

我认为您可以执行以下操作:

  1. 创建一个所需大小的空数组(如果不确定,可能会更多)

  2. 将数据插入数组中您想要的位置 以下示例按顺序插入数据(例如,当读取多个文件并将文件中的数据添加到数组中时)

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

...等等,每个附加区块