gpt4 book ai didi

python - 将矩阵数组制作成矩阵的三元组数组/Python Pandas

转载 作者:太空宇宙 更新时间:2023-11-04 08:39:50 25 4
gpt4 key购买 nike

我在一个数组中有 891 个大小为 7X32 的矩阵。我想得到 891 个大小为 7X32 的矩阵的三元组。

两个矩阵的例子(显然不是那么大):

[[1,1,1,1,1],
[2,2,2,2,2],
[3,3,3,3,3]],
[[2,2,2,2,2],
[2,2,2,2,2],
[3,3,3,3,3]]

我需要它变成:

[[1,1,1,1,1],
[2,2,2,2,2],
[3,3,3,3,3]],
[[1,1,1,1,1],
[2,2,2,2,2],
[3,3,3,3,3]],
[[1,1,1,1,1],
[2,2,2,2,2],
[3,3,3,3,3]],
[[2,2,2,2,2],
[2,2,2,2,2],
[3,3,3,3,3]],
[[2,2,2,2,2],
[2,2,2,2,2],
[3,3,3,3,3]],
[[2,2,2,2,2],
[2,2,2,2,2],
[3,3,3,3,3]],

其中 [] 表示它是一个不同的矩阵。

我用来获取矩阵的代码:

matrices = np.dstack([df.values.astype(int)] * 32)

来自常规数据框。

我想也许

matrices = np.dstack([[df.values.astype(int)] * 32]*3)

会工作,但没有。

我这样做是为了尝试将常规问题变成像 cifar 10 数据这样的“图像”。

最佳答案

使用np.repeat在再扩展一个暗淡/轴之后-

np.repeat(a[None],3,axis=0)

sample 运行-

In [140]: a
Out[140]:
array([[7, 1, 8, 6],
[5, 8, 1, 1],
[2, 7, 3, 7]])

In [141]: np.repeat(a[None],3,axis=0)
Out[141]:
array([[[7, 1, 8, 6],
[5, 8, 1, 1],
[2, 7, 3, 7]],

[[7, 1, 8, 6],
[5, 8, 1, 1],
[2, 7, 3, 7]],

[[7, 1, 8, 6],
[5, 8, 1, 1],
[2, 7, 3, 7]]])

我们也可以使用np.broadcast_to -

np.broadcast_to(a[None],(3,) + a.shape) # creates a read-only version

要制作可写版本,请附加 .copy()


使用 OP 和@piRSquared 之间的历史以及答案帖子,这是我的风中飞镖 -

a = df.values.astype(int)
shp = a.shape
out = np.broadcast_to(a[:,None,:,None], (shp[0], 3, shp[1], 32))

关于python - 将矩阵数组制作成矩阵的三元组数组/Python Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45719563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com