我有以下3d numpy数组np.random.rand(6602, 3176, 2)
。我想将其转换为2d数组(numpy
或pandas.DataFrame
),其中内部的每个值都是一个元组,使得形状为(6602, 3176)
。
这个问题帮助我了解了如何减小尺寸,但是我仍然对元组位感到困惑。
我有 60000 个 train_images 作为形状 (28,28,60000) 矩阵引入。它是一个 numpy.ndarray。我想将它转换为一维图像数组,这意味着每个图像都表示为一行/数字数组,我想要 60000 个数组。换句话说,我想从 (28, 28, 60000) 到 (60000, 28*28)。在python中,它将是:
images_features = []
for image in images:
imageLine = []
for y in range(len(image)):
for x in range(len(image[0])):
imageLine.append(image[y][x])
images_features.append(imageLine)
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?我怀疑我需要使用重塑,但我无法弄清楚我到底如何做到这一点。
这就是我获取图像的方式:
data = scipy.io.loadmat('train.mat')
images = data["train_images"]
Run Code Online (Sandbox Code Playgroud)
所以“图像”是我正在谈论的数组。
有人向我建议:
“您可能需要更改轴或将它们组合起来才能获得您想要的功能。我建议您也绘制它们,以防图像向侧面结束。确保您对轴很勤奋,以避免出现更多问题。”
我不知道这里指的是什么“轴”以及如何考虑上面所说的内容。
有人可以解释我需要做什么以及为什么吗?(它能做什么)
我得到了一个形状为 (1,3,300) 的 numpy 数组,我想去掉第一个轴并只得到 3*300 2D 数组。我该怎么做 ?
我看到了几个像numpy with python:convert 3d array to 2d这样的问题 ,其中要求更复杂。我的看起来很简单。有什么简单的方法可以做到吗?