python - 如何在不混合相应条目的情况下将 2D 矩阵转换为 3D 张量?

标签 python tensorflow

我的数据形状为(3000, 4),特征为(产品、商店、周、数量)。数量就是目标。

所以我想将这个矩阵重建为张量,而不混合相应的量。

例如,如果有 30 个产品、20 个商店和 5 周,则张量的形状应为 (5, 20, 30),并具有相应的数量。因为整个数据中不会出现两次类似(商店 A,产品 X,第 3 周)的条目,因此每个商店 x 产品 x 周对应该有一个对应的数量。

关于如何实现这一点有什么建议,或者有任何逻辑错误吗?谢谢。

最佳答案

如果没有假人,您只需仔细整理我们的数据即可。 np.lexsort 可以做到。

假设您的数据类似于 data:

import numpy as np
dims=a,b,c=30,20,5
data=np.array(list(product(*[np.arange(i) for i in dims+(1,)])))
data[:,-1]=np.random.randint(0,100,a*b*c)
np.random.shuffle(data)
#array([[ 4, 15,  0, 56],
#       [27, 16,  2,  3],
#       [ 4,  8,  4, 26],
#       ..., 
#       [20, 14,  3, 28],
#       [14, 10,  4,  6],
#       [19, 14,  3, 39]])

然后您可以根据需要进行排序并重新调整形状,如下所示:

sorteddata=data[np.lexsort(data[:,::-1].T)]
tensor=sorteddata[:,-1].reshape(dims)

现在张量[4,15,0]56。好的!

关于python - 如何在不混合相应条目的情况下将 2D 矩阵转换为 3D 张量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53313913/

相关文章:

python - Keras 中卷积层的稀疏训练

python - 读取一个大的 big-endian 二进制文件

python - os.walk()应用于订单程序

python - 为什么我在 Ames Housing 数据集上执行的 Tensorflow 线性回归收敛速度非常非常慢?

tensorflow - 如何从 Tensorflow 对象检测 API 正确地提供对象检测模型?

python - 如何在tensorflow中给word2vec模型一个特定的词

python - Tensorflow 权重矩阵秩误差

Python 绘制时间序列并强调其中的一部分

python - 使用python使用正则表达式删除字符的重复实例

python - functools.partial : TypeError: got multiple values for keyword argument