我目前在将numpy.ndarray从2d重塑为3d时遇到问题。
我的numpy.ndarray的当前形状是(221286,2050),我需要它 (221286,1,2050)
我尝试这样做:
train_set_data_vstacked_normalized_reshaped = np.reshape(train_set_data_vstacked_normalized.shape[0],1,train_set_data_vstacked_normalized.shape[1])
但这似乎创造了一种不同的方式numpy.ndarray ....
答案 0 :(得分:1)
np.reshape
,当用作函数时,将数组重新整形为第一个参数,新形状作为第二个参数。所以这应该这样做:
shape = your_long_named_array.shape
your_long_named_array_reshaped = np.reshape(your_long_named_array,
(shape[0], 1, shape[1]))
你也可以使用ndarrays的.reshape
方法,它不需要你在元组中显式地包装形状:
your_long_named_array_reshaped = your_long_named_array.reshape(shape[0], 1,
shape[1])
虽然对于这种特殊情况,最方便的可能是使用np.newaxis
索引数组:
your_long_named_array_reshaped = your_long_named_array[:, np.newaxis, :]
答案 1 :(得分:0)
您可以使用expand_dims
功能。
train_set_data_vstacked_normalized_reshaped = np.expand_dims(train_set_data_vstacked_normalized.shape,axis=1)
示例:
In [16]: x = np.zeros((221286, 2050))
In [17]: x.shape
Out[17]: (221286, 2050)
In [18]: y = np.expand_dims(x, axis=1)
In [19]: y.shape
Out[19]: (221286, 1, 2050)