我想将数据从一个numpy数组传输到另一个数组,同时消除一些数据。我想我可以过滤数据,但是我无法将其传输到另一个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 [计数器] =值[索引] ValueError:无法将输入数组从形状(5295974)广播到形状(1)
我已经尝试这样做约36个小时,只是不知道该怎么做。如果有人可以告诉我如何操作,我将不胜感激。
我不确定使用numpy数组是否可以做到这一点。我需要某种方式使行中的数据彼此分开。
Arrays are as follows onesd_prob_combinetest:
array([[0.],
[0.],
[0.],
[0.]])
下一个数组可能看起来很奇怪。这是一个二维的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. ]])]
答案 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