如何在python中重塑数组? [复制]

Posted

技术标签:

【中文标题】如何在python中重塑数组? [复制]【英文标题】:How to reshape an array in python? [duplicate] 【发布时间】:2020-07-15 06:25:09 【问题描述】:

我们如何在python中重塑一个数组,例如

original_array = [1,2,3,4]

而我重塑后想要的是这个,

[[1,2,3,4]]

我使用这段代码重新塑造了数组,

original = np.asarray(original)
original = original.reshape(original.shape[0], 1)

但我得到的是这样的,

[[1]
 [2]
 [3]
 [4]]

提前致谢。

【问题讨论】:

reshaped_array = [patient_data] 试试这个。 对我来说似乎是有效的,或者:patient_data = [original_array]。如果这对您没有帮助,请编辑您的问题。我也不清楚这个问题是否解决了。 original_array 是列表还是 numpy 数组?看起来像一个列表,但有一个 numpy 标签 原来的形状是(4,)。你想要(1,4),你得到(4,1)。看出区别了吗? 这能回答你的问题吗? How can I add new dimensions to a Numpy array? 【参考方案1】:

您只需要将.reshape() 的参数以不同的顺序排列:

patient_data = patient_data.reshape(1, patient_data.shape[0])

或者,可能更好:

patient_data = patient_data.reshape(1, -1)

还有其他几种方法可以做到这一点,例如:

patient_data = patient_data[None, :]
patient_data = patient_data[None, ...]
patient_data = patient_data[np.newaxis, :]
patient_data = patient_data[np.newaxis, ...]
patient_data = np.expand_dims(patient_data, 0)

NumPy 文档中关于Indexing 的章节可能对你来说是一本不错的读物。

【讨论】:

对不起,我编辑了我的问题,上述内容是否适用? 哇这工作!!!非常感谢!!【参考方案2】:

如果original_arraynumpy 数组而不是列表,则可以使用numpy 中的expand_dims

import numpy as np
original_array = np.array([1,2,3,4])

np.expand_dims(original_array,axis=0)
# array([[1, 2, 3, 4]])

【讨论】:

这行得通!非常感谢!!!!1【参考方案3】:

你可以从numpy使用expand_dims然后:

import numpy
original_array = numpy.array([1,2,3,4])
numpy.expand_dims(original_array, axis=0)
# array([[1, 2, 3, 4]])

【讨论】:

以上是关于如何在python中重塑数组? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Python将3d数组重塑为2d

如何在 Python 中重塑 networkx 图?

np.reshape() 如何重塑具有指定三个参数的矩阵? [复制]

在python中重塑图像矩阵

Python将列表重塑为ndim数组

在 NumPy 中重塑数组