Превращение вывода в 2D массив в Python - PullRequest
1 голос
/ 03 апреля 2020

Я делаю некоторые вычисления с двумя двумерными массивами с двумя для l oop.

Ответ, который я получил, состоит из нескольких отдельных чисел.

Есть ли способ, которым я могу превратить ответы в один двумерный массив? Вот так:

[[6.0, 10.9], [24.0, 33.8]]

Это мой код:

import numpy as np

for i in range(1, 3):
    arr2d_1 = np.array([[1, 2, 3], [4, 5, 6]])
    arr2d_2 = np.array([[2, 2, 2], [2, 2, 2]])
    for j in range(0,2):
        res = (arr2d_1*i+arr2d_2*j)/arr2d_1*i
        sum_res = np.sum(res)
        print(sum_res)

Это результат:

6.0
10.900000000000002
24.0
33.8

Ответы [ 2 ]

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

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

results = np.zeros([2,2])
for i in range(1, 3):
    arr2d_1 = np.array([[1, 2, 3], [4, 5, 6]])
    arr2d_2 = np.array([[2, 2, 2], [2, 2, 2]])
    for j in range(0,2):
        res = (arr2d_1*i+arr2d_2*j)/arr2d_1*i
        sum_res = np.sum(res)
        results[i-1,j] = sum_res

results
->
array([[ 6. , 10.9],
       [24. , 33.8]])

Но в более широком смысле вы можете использовать np.reshape () для получить массивы, как вам нравится.

array = np.array([1,2,3,4)
array.reshape(2,2)
-> 
array([[1, 2],
       [3, 4]])
1 голос
/ 03 апреля 2020

просто используйте:

import numpy as np

result = []
for i in range(1, 3):
    arr2d_1 = np.array([[1, 2, 3], [4, 5, 6]])
    arr2d_2 = np.array([[2, 2, 2], [2, 2, 2]])

    r = []
    for j in range(0,2):
        res = (arr2d_1*i+arr2d_2*j)/arr2d_1*i
        sum_res = np.sum(res)
        r.append(sum_res)
    result.append(r)

print(result) # or np.array(result)

вывод:

[[6.0, 10.900000000000002], [24.0, 33.8]]

вы сохраняете промежуточные результаты от каждой полной внутренней for l oop итерации в новом списке для каждого внешняя итерация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...