我有两个要用于计算的数字列表,但它们的长度不同。
list_1 = [123,456,789,987]
list_2 = [321,654]
由于总共有4x2 = 8个组合,因此我想像这样输出它们:
Calc_1 Calc_2
Calc_of_list_1_num_1 Calc_of_list_2_num_1
Calc_of_list_1_num_2 Calc_of_list_2_num_1
Calc_of_list_1_num_3 Calc_of_list_2_num_1
Calc_of_list_1_num_4 Calc_of_list_2_num_1
Calc_of_list_1_num_1 Calc_of_list_2_num_2
Calc_of_list_1_num_2 Calc_of_list_2_num_2
Calc_of_list_1_num_3 Calc_of_list_2_num_2
Calc_of_list_1_num_4 Calc_of_list_2_num_2
我一直在为此苦苦挣扎,但我不确定该如何处理。
答案 0 :(得分:0)
使用numpy的np.ufunc.outer:
附加示例:
np.add.outer(list_1,list_2)
输出:
array([[ 444, 777],
[ 777, 1110],
[1110, 1443],
[1308, 1641]])
要创建数据框:
pd.DataFrame(np.add.outer(list_1,list_2), columns=list_2, index=list_1)
输出:
321 654
123 444 777
456 777 1110
789 1110 1443
987 1308 1641
对于乘法,请使用np.outer:
np.outer(list_1,list_2)
输出:
array([[ 39483, 80442],
[146376, 298224],
[253269, 516006],
[316827, 645498]])
对于数据框:
pd.DataFrame(np.outer(list_1,list_2), columns=list_2, index=list_1)
输出:
321 654
123 39483 80442
456 146376 298224
789 253269 516006
987 316827 645498