【问题标题】:How to reshape an array in python? [duplicate]如何在python中重塑数组? [复制]
【发布时间】: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?

标签: python numpy


【解决方案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]])

【讨论】:

    猜你喜欢
    • 2020-11-16
    • 2019-05-05
    • 2021-06-05
    • 1970-01-01
    • 2019-08-25
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多