【发布时间】:2019-05-11 02:48:04
【问题描述】:
我有两个数据列表,分别是:
a = [1,1,1, 0,0,0]
b = [9,8,7, 6,5,4]
我想要的输出是:
df = [[9,9,9, 0,0,0],
[8,8,8, 0,0,0],
[7,7,7, 0,0,0],
[6,6,6, 0,0,0],
[5,5,5, 0,0,0],
[4,4,4, 0,0,0]]
我目前正在做的事情是这样的:
for aa in a:
counter = 0
df = pd.DataFrame()
while counter<len(b):
df[counter] = pd.Series(b)*a[counter]
counter+=1
这看起来,绝对是低效的。
在我的实际应用中,a 和 b 的大小非常大,所以效率问题就出现了。
任何聪明有效的方法来解决这个问题?任何建议将不胜感激
提前谢谢你!
【问题讨论】:
-
你试过
numpy.matmul和a和b的倒数吗? -
'a' 和 'b' 的原始尺寸是否与您提供的示例相似?
-
@bunbun 我没试过,我也会试一试
-
@Marmik Shah 实际上会完全不同
-
@H.Choi 啊!提供的答案很好。但通常当你想构建一个矩阵时,在大多数情况下复杂度将是 O(row * column)。这是因为您正在创建行 * 列值。