当前位置: 首页 > 知识库问答 >
问题:

在Python中重塑rank>2 numpy数组

西门良才
2023-03-14

我使用numpy数组作为rank>; 2张量,我试图将这样一个张量重塑成矩阵,即秩为2的数组。 标准的Ndarray.reshape()函数实际上并不能用于此,因为我需要以特定的方式对张量的索引进行分组。 我的意思是:假设我从一个秩3的张量开始,t_ijk。 我试图找到一个函数,它将输出秩2张量T_(j)(ik),例如,在这个例子中,期望的输入/输出将是

[Input:]      T=np.array([[[1 2]
                           [3 4]]
                          [[5 6]
                           [7 8]]])

[Output:]     array([[1, 2, 5, 6],
                     [3, 4, 7, 8]])

还有,一个朋友向我建议,tensorflow可能有这样的功能,但我从来没有用过。 这里有人有什么见识吗?

共有1个答案

蓬运诚
2023-03-14

试试这个-

k = 1
m = 2
i = 5
j = 5
l = 2

#dummy T_ijklm
T = np.array(range(100)).reshape(k,m,i,j,l)
T_new = T.reshape(k*m,i*j*l)

print('Original T:',T.shape)
print('New T:',T_new.shape)

#(km)(ijl) = 2*50

Original T: (1, 2, 5, 5, 2)
New T: (2, 50)

新张量现在是秩2

array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
        16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
        32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
        48, 49],
       [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
        66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
        82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
        98, 99]])
 类似资料:
  • 这似乎是非常基本的知识,但我还是卡住了,尽管我有一些数据处理的理论背景(通过其他软件)。值得一提的是,我是蟒蛇和熊猫图书馆的新手。 我的任务是将系列名称列的值作为单独的列(从长到宽转换)。我花了很长时间尝试不同的方法,但只有错误。 例如: 我犯了一个错误: ...很多短信...通过值的长度是2487175,索引暗示2 有谁能指导我完成这个过程吗?谢谢 它用于代码“mydata=mydata”。pi

  • 我正在使用来训练CNN,基本错误是维度不匹配。 调试后的原因是: 生成输出: 如果需要,我的模型的摘要是: convolution2d_1(卷积2D)(无,32, 25, 34) 320convolution2d_input_1[0][0] activation\u 1(activation)(无、32、25、34)0卷积2d\u 1[0][0] 卷积2d\u 2(卷积2d)(无,32,23,32

  • 本文向大家介绍R重塑数据,包括了R重塑数据的使用技巧和注意事项,需要的朋友参考一下 示例 数据通常在表中。通常,可以将此表格数据分为宽和长格式。在广泛的格式中,每个变量都有自己的列。 人 身高[cm] 年龄[yr] 艾莉森 178 20 鲍勃 174 45 卡尔 182 31 但是,有时使用长格式会更方便,因为所有变量都在一列中,而值在第二列中。 人 变量 值 艾莉森 身高[cm] 178 鲍勃

  • 问题内容: 我有一个熊猫系列,目前看起来像这样: 我想从根本上将其重塑成一个看起来像这样的数据框… 即。逻辑构造,指出每个观察(行)属于哪个类别。 我能够编写基于循环的代码来解决该问题,但是鉴于我需要处理的行数众多,这将非常缓慢。 有谁知道针对这种问题的矢量化解决方案?我将不胜感激。 编辑:有509个类别,我确实有一个清单。 问题答案:

  • R中的数据重塑是关于改变数据组织成行和列的方式。 大多数情况下,R中的数据处理是通过将输入数据作为数据帧来完成的。 从数据帧的行和列中提取数据很容易,但有些情况下我们需要的数据帧格式与我们收到它的格式不同。 R具有许多功能,可以在数据帧中拆分,合并和更改行到列,反之亦然。 在数据框中加入列和行 我们可以使用cbind()函数连接多个向量来创建数据框。 我们也可以使用rbind()函数合并两个数据帧

  • 问题内容: tl; dr是否 可以在不使用numpy.reshape的情况下将numpy数组的视图从5x5x5x3x3x3重塑为125x1x1x3x3x3? 我想对一个体积(大小为MxMxM)执行一个滑动窗口操作(具有不同的步幅)。如本杰明(Benjamin)和艾肯伯格(Eickenberg)先前建议的那样,可以使用生成滑动窗口数组,并在下面的代码片段中进行了演示,该代码片段使用了skimage中

  • 本文向大家介绍R 语言重塑函数,包括了R 语言重塑函数的使用技巧和注意事项,需要的朋友参考一下 示例 用于重塑数据的最灵活的基本R函数是reshape。 请注意,data.frames是不平衡的,也就是说,单元2在第一个周期中缺少观测值,而单元3和4在第二个周期中缺少观测值。另外,请注意,有两个变量随时间变化:计数和值,以及两个不变的变量:标识符和位置。 长到宽 要重塑data.frame宽幅格式

  • 主要内容:在数据框中连接列和行,合并数据帧,拆分数据和重构数据,拆分数据,重构数据R中的数据重整是关于将数据组织成行和列的方式。 R中的大多数时间数据处理是通过将输入数据作为数据帧来完成的。 很容易从数据帧的行和列中提取数据,但是有些情况下,我们需要的格式与收到的格式不同。 R具有许多函数,用于在数据帧中拆分,合并和更改行到列,反之亦然。 在数据框中连接列和行 我们可以使用函数连接多个向量来创建数据帧。也可以使用函数合并两个数据帧。 当我们执行上述代码时,会产生以下结果 - 合