【问题标题】:Change the format of a numpy array in python在python中更改numpy数组的格式
【发布时间】:2020-12-25 18:41:02
【问题描述】:

我有一个 (2x2) numpy 数组,其中包含一个 (1x3) 列表,如下所示:

[[ 1, 2, 3], [ 4, 5, 6]
 [ 7, 8, 9], [10,11,12]]

我想把它分解成这样的单个元素(2x6)数组(或矩阵,我无法区分)

[ 1, 2, 3,  4,  5,  6]
[ 7, 8, 9, 10, 11, 12]

我可以通过处理第一个数组的每个元素并将其放到第二个数组中来创建第二个数组。但是我想知道numpy 库是否提供了更简单的方法。

【问题讨论】:

  • 基于stackoverflow.com/help/on-topic,您能否展示生成与您期望的输入相匹配的数组所需的最少代码?
  • 您的第一次显示不明确。它真的是带有列表的 (2,2) 对象 dtype 数组,还是 (2,2,3) 数字数组?如果是后者,则简单的重塑将起作用np.reshape(arr, (2,6))。但如果是前者,np.array(arr.tolist()) 可能是有用的第一步。
  • 对于您现有的数组my_array,您能否分享my_array.dtypemy_array.shape 的确切值输出?

标签: python numpy numpy-ndarray


【解决方案1】:

你可以简单地使用调整大小功能来做到这一点

import numpy as np
a=[[ 1, 2, 3], [ 4, 5, 6],
 [ 7, 8, 9], [10,11,12]]
a = numpy.array(a)
a.resize(2,6)
print(a)

输出

array([[ 1,  2,  3,  4,  5,  6],
       [ 7,  8,  9, 10, 11, 12]])

【讨论】:

  • 如果你不改变元素的总数,reshaperesize 更可取(无论是函数还是方法)。
猜你喜欢
  • 2012-06-26
  • 2015-07-26
  • 2021-05-17
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 2021-08-06
相关资源
最近更新 更多