我想将数据从一个numpy数组传输到另一个numpy数组,同时消除一些数据。我想我可以过滤数据OK,但我无法将其转移到另一个numpy数组中。我用np.zeros创建了我的第二个数组,我认为它是正确的形状,但是我收到一个错误,
onesd_prob_combinetest=np.zeros([star_number,1])
for counter, value in enumerate(one_d_arrays):
for index, element in enumerate(value):
onesd_prob_combinetest[counter] = value[index]
if sum(onesd_prob_combinetest) >
sixty_eight_percenttest[counter]:
break
sixty_eight_percenttest是以下数组[0.07326831 0.08325579 1.63425504 0.76375927]。我想将上述68%列表中的值加总到新数组中。
我收到此错误消息...
onesd_prob_combinetest [counter] = value [index] ValueError:无法将形状(5295974)的输入数组广播为形状(1)
我一直试图这样做大约36个小时,只是不知道该怎么做。如果有人能告诉我如何,我将非常感激。
我不确定这甚至可以使用numpy数组来完成。我需要一些方法来保持我的行中的数据彼此分开。
Arrays are as follows onesd_prob_combinetest:
array([[0.],
[0.],
[0.],
[0.]])
这个下一个数组似乎很奇怪。这是一个2D numpy数组,我将其切成单个数组,认为它更容易处理。
one_d_arrays
[array([[0.0002739 , 0.00027299, 0.00027292, ..., 0. , 0. ,
0. ]]), array([[0.00091127, 0.00090518, 0.00089081, ..., 0. , 0. ,
0. ]]), array([[0.0012387 , 0.00123697, 0.0012369 , ..., 0. , 0. ,
0. ]]), array([[0.00141058, 0.00141006, 0.00141002, ..., 0. , 0. ,
0. ]])]
我想我找到了解决方案。
如果我用嵌套列表替换numpy目标数组,它似乎工作!
我还将one_d-arrays更改回原来的2d数组,而不是数组数组。
可能有更好的方法,但我设法到达那里。
非常感谢您帮助我。
如果您有其他选择,请告诉我。最好的祝愿。
onesd_prob_combinetest= [[] for _ in range(star_number)]
for counter, value in enumerate(one_d_arrays):
for index, element in enumerate(value):
onesd_prob_combinetest[counter].append(element)
if sum(onesd_prob_combinetest[counter]) > sixty_eight_percenttest[counter]:
break