Перенос данных из одного массива np.array в другой - PullRequest
0 голосов
/ 29 марта 2019

Я бы хотел перенести данные из одного массива в другой, исключив при этом некоторые данные.Я думаю, что я могу отфильтровать данные, но у меня возникли проблемы с переносом их в другой массив.Я создал свой второй массив с помощью 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.]])

Этот следующий массив может показаться странным.Это был двумерный массив, который я разбил на отдельные массивы, думая, что с ним будет легче иметь дело.

    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.        ]])]

1 Ответ

0 голосов
/ 29 марта 2019

Я думаю, что нашел решение.

Если я заменим массив numpy target на вложенный список, это, похоже, сработает!

Я также изменил массив one_d-обратно на его оригинал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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...