В этом примере у меня есть список 1-го ndarray, с длиной 9, список имеет 9 элементов, и у каждого есть shape=(2048,)
, так что всего 9 * (2048,)
, я получаю эти ndarray
из mxnet
так что каждый из ndarray
равен <NDArray 2048 @cpu(0)>
массиву dtype=numpy.float32
Если я использую np.asarray
для преобразования этого списка, он становится следующим результатом
shape=<class 'tuple'>: (9, 2048, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
Очевидно, мне нужен двумерный массив с shape=(9, 2048)
, как решить эту проблему?
ps: я обнаружил эту проблему, сохранив файл npy
и загрузив его. Я непосредственно сохранил список перед тем, как преобразовать его в ndarray
(поэтому np.save
преобразует список в ndarrary
автоматически), и после загрузки я обнаружил, что форма стала чем-то выше, что действительно ненормально
Ответ ниже, np.vstack
и np.array
оба работают для общей проблемы от list
до ndarray
, но не могут решить мою, поэтому я сомневаюсь, что это какой-то особый случай mxnet