【问题标题】:How do I quickly create a numpy or pandas 2D array with both axis in a range and the values a product?如何快速创建一个 numpy 或 pandas 二维数组,其轴在一个范围内,值是一个产品?
【发布时间】:2016-11-17 21:06:50
【问题描述】:

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

我的输出与此类似,因为 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 看起来很相似,但用于索引。它似乎没有做我正在寻找的乘法。

【问题讨论】:

    标签: python numpy pandas


    【解决方案1】:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-25
      • 1970-01-01
      • 2017-08-13
      • 2012-11-06
      相关资源
      最近更新 更多