Numpy: создать массив массивов с помощью vstack - PullRequest
0 голосов
/ 22 января 2019

Я хотел бы создать множество массивов массивов с помощью vstack, но я получил это сообщение об ошибке: all the input array dimensions except for the concatenation axis must match exactly

Что я пробовал до сих пор:

all_exp = np.array([])

for idx, rw in df_gamma_count.iterrows():
    exp = rw['Pr_A_perc'] * ( rw['gamma_index'] * float(row['spread_perc']) * (1+f) - (f+f) )
    gamma_and_exp = [exp, rw['gamma_index']]
    all_exp = np.vstack((all_exp,gamma_and_exp))

Любая идея, почему?Спасибо!

1 Ответ

0 голосов
/ 22 января 2019

Для работы numpy.vstack() количество столбцов должно совпадать во всех двумерных массивах.Например:

In [14]: arr1 = np.arange(2*4).reshape(2, 4)
In [15]: arr2 = np.arange(5*4).reshape(5, 4) 

In [16]: np.vstack((arr1, arr2)) 
Out[16]: 
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15],
       [16, 17, 18, 19]])

Сообщение об ошибке

все размеры входного массива, кроме оси конкатенации, должны точно совпадать

означает, что вВ этом примере мы сложим вдоль оси 0. Таким образом, все размеры, кроме оси 0, должны совпадать.

Например, в формах

(2, 4)
(5, 4)
 ^  ^
 |  |
 |  dimension of this axis should match.
 dimensions along this axis can be different since we'are concatenating along axis 0.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...