Я в принципе хочу, чтобы инициализировать пустой 6-тензор, например:Как инициализировать пустой массив Numpy с заданным количеством измерений?
a = np.array([[[[[[]]]]]])
Есть ли лучший способ, чем писать скобки явно?
Я в принципе хочу, чтобы инициализировать пустой 6-тензор, например:Как инициализировать пустой массив Numpy с заданным количеством измерений?
a = np.array([[[[[[]]]]]])
Есть ли лучший способ, чем писать скобки явно?
Итеративно добавляющие строки й в ранге-1 с использованием np.concatenate (a, b, axis = 0)
Не использовать. Создание массива итеративно происходит медленно, поскольку на каждом шаге ему необходимо создать новый массив. Плюс a
и b
должны совпадать во всех измерениях, кроме конкатенации.
np.concatenate((np.array([[[]]]),np.array([1,2,3])), axis=0)
даст вам ошибку измерения.
Единственное, что вы можете сцепить в такой массив представляет собой массив с размером 0 dimenions
In [348]: np.concatenate((np.array([[]]),np.array([[]])),axis=0)
Out[348]: array([], shape=(2, 0), dtype=float64)
In [349]: np.concatenate((np.array([[]]),np.array([[1,2]])),axis=0)
------
ValueError: all the input array dimensions except for the concatenation axis must match exactly
In [354]: np.array([[]])
Out[354]: array([], shape=(1, 0), dtype=float64)
In [355]: np.concatenate((np.zeros((1,0)),np.zeros((3,0))),axis=0)
Out[355]: array([], shape=(4, 0), dtype=float64)
Для работы итеративно, начните с пустого списка, и append
к нему; затем сделайте массив в конце.
a = np.zeros((1,1,1,1,1,0))
может быть объединен на последней оси с другим np.ones((1,1,1,1,1,n))
массивом.
In [363]: np.concatenate((a,np.array([[[[[[1,2,3]]]]]])),axis=-1)
Out[363]: array([[[[[[ 1., 2., 3.]]]]]])
Вы можете сделать что-то вроде np.empty(shape = [1] * (dimensions - 1) + [0])
. Пример:
>>> a = np.array([[[[[[]]]]]])
>>> b = np.empty(shape = [1] * 5 + [0])
>>> a.shape == b.shape
True
Кроме того, я не совсем уверен, что это хороший способ построения такого тензора снизу вверх, используя 'np.concatenate'. –
Что вы собираетесь делать с этим пустым массивом? –
Итеративное добавление строк этого ранга-1 с использованием 'np.concatenate (a, b, axis = 0)'. –