如何快速创建一个numpy或pandas二维数组,其中两个轴都在一个范围内,值是一个产品?

时间:2016-07-14 19:36:35

标签: python numpy pandas

标题比我预期的要复杂,但我基本上是在寻找一种快速的方法来制作一个乘法表,从X和Y轴的abitraty整数开始。

我的输出与此类似,因为X是(5, 12, 1)的范围而Y是(20, 25, 1)的范围

       5      6      7      8      9      10     11
20    100    120    140    160    180    200    220
21    105    126    147    168    189    210    231
22    110    132    154    176    198    220    242
23    115    138    161    184    207    230    253
24    120    144    168    192    216    240    264

我发现this answer看起来很相似,但是用于索引。它似乎没有我正在寻找的乘法。

1 个答案:

答案 0 :(得分:6)

NumPy broadcasting对于大熊猫!

row = np.arange(20,25)
col = np.arange(5,12)
df = pd.DataFrame(row[:,None]*col,index=row,columns=col)

示例运行 -

In [224]: row = np.arange(20,25)

In [225]: col = np.arange(5,12)

In [226]: pd.DataFrame(row[:,None]*col,index=row,columns=col)
Out[226]: 
     5    6    7    8    9    10   11
20  100  120  140  160  180  200  220
21  105  126  147  168  189  210  231
22  110  132  154  176  198  220  242
23  115  138  161  184  207  230  253
24  120  144  168  192  216  240  264