Итерация двух массивов для создания серии списков - PullRequest
1 голос
/ 14 апреля 2020

Я надеюсь умножить массив (Range) на каждое из значений во втором массиве (ISO). Затем будет выведен ряд массивов, например: ISO[0], ISO[1], ISO[2]...

Это код, который у меня есть, но я не могу заставить его итерацию правильно, есть ли ярлык, который я пропускаю?

ISO = [0.0000005, 0.000001, 0.0000025, 0.000004, 0.000006,
                0.000009, 0.000013, 0.000021, 0.000033, 0.000052, 0.000084, 0.00013,
       0.00021, 0.00033, 0.00052, 0.00084, 0.00130, 0.0021, 0.0033]

d = len(ISO)

Range = np.arange(0, 300, 1)
for [i] in ISO:
       variance = []
       for [y] in Range:
              a = i * y
              variance[i].append(a)
              y = y+1
       i = i+1

Ответы [ 3 ]

1 голос
/ 14 апреля 2020

Если я правильно вас понимаю, вы хотите умножить массив Range на каждый элемент массива ISO и получить в результате n массивов (n - длина массива ISO).

Использование numpy:

import numpy as np

ISO = np.array([0.0000005, 0.000001, 0.0000025, 0.000004, 0.000006,
            0.000009, 0.000013, 0.000021, 0.000033, 0.000052, 0.000084,
            0.00013,0.00021, 0.00033, 0.00052, 0.00084, 0.00130, 0.0021, 0.0033])

Range = np.arange(0, 300, 1)


result = np.multiply(ISO.reshape(len(ISO),1),Range)
0 голосов
/ 14 апреля 2020

Это был бы более "numpy -экологический" способ сделать это:

np_ISO=np.array(ISO)
range = np.arange(0, 300)

variance_iso=np_ISO[:,None] * range
0 голосов
/ 14 апреля 2020

Я думаю, что вы хотите что-то вроде этого ...

import numpy as np

ISO = [0.0000005, 0.000001, 0.0000025, 0.000004, 0.000006,
                0.000009, 0.000013, 0.000021, 0.000033, 0.000052, 0.000084, 0.00013,
       0.00021, 0.00033, 0.00052, 0.00084, 0.00130, 0.0021, 0.0033]

variance = {}
Range = np.arange(0, 300, 1)
for i in ISO:
    results = []
    for y in Range:
        a = i * y
        results.append(a)
    variance[i] = results
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...