将数据从一个np.array传输到另一个

问题描述 投票:0回答:1

我想将数据从一个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.        ]])]
python numpy
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.