2024-10-03 04:31:05 发布
网友
def dataGen(x): x1=x/2 x2=x/3 x3=x+x1 return x1,x2,x3 output3DArray=data_2D_ArrayDf.apply(dataGen)
上面的代码旨在从二维数组创建三维数组。输入2D阵列形状为[10,10],预期输出形状为[10,10,3]。当前输出仅为元组的2D 10,10数组
这是一个简单的解决方法
import numpy as np def dataGen(a_2d_array): x, y = a_2d_array.shape output = np.zeros((x, y, 3)) output[:, :, 0] = a_2d_array / 2 output[:, :, 1] = a_2d_array / 3 output[:, :, 2] = a_2d_array * 3 / 2 return output a_2d_array = np.random.rand(10, 10) a_3d_array = dataGen(a_2d_array) print(a_3d_array.shape) # (10, 10, 3)
熊猫数据框最多用于表示二维数据。虽然它可以做multiindexing,但对于您的案例来说,它不是微不足道的
如果您使用numpy数组,这是非常简单的
def add_dim(x): return np.expand_dims(x, axis=-1) # <- axis=0 for (3,10,10) or -1 for (10,10,3) X = data_2D_Array output3DArray = np.concatenate((add_dim(X/2), add_dim(X/3), add_dim(X+X/2)), axis=2)
Numpy使用广播并行地对阵列的所有元素执行操作,速度非常快
这是一个简单的解决方法
熊猫数据框最多用于表示二维数据。虽然它可以做multiindexing,但对于您的案例来说,它不是微不足道的
如果您使用numpy数组,这是非常简单的
Numpy使用广播并行地对阵列的所有元素执行操作,速度非常快
相关问题 更多 >
编程相关推荐