【问题标题】:how to split matrix into 4 quadrants in python using numpy如何使用numpy在python中将矩阵分成4个象限
【发布时间】:2014-11-09 09:37:06
【问题描述】:

我是 Python 新手。我正在尝试实现 Strassen 算法。在我的实现中,矩阵的大小始终是 2 的幂。那么,如何将矩阵划分为 4 个大小相等的象限?谢谢

【问题讨论】:

    标签: python-2.7 numpy matrix divide strassen


    【解决方案1】:
    >>> xs = np.arange(16)
    >>> xs
    array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15])
    >>> xs.reshape(4, 4)
    array([[ 0,  1,  2,  3],
           [ 4,  5,  6,  7],
           [ 8,  9, 10, 11],
           [12, 13, 14, 15]])
    >>> xs = xs.reshape(4, 4)
    >>> a, b, c, d = xs[:2, :2], xs[2:, :2], xs[:2, 2:], xs[2:, 2:]
    >>> print(a, b, c, d, sep='\n')
    [[0 1]
     [4 5]]
    [[ 8  9]
     [12 13]]
    [[2 3]
     [6 7]]
    [[10 11]
     [14 15]]
    

    将 2 替换为 len(xs) // 2

    【讨论】:

    • 感谢您的回答。你能解释一下计算a、b、c、d时的“:”符号吗?它应该在值之前还是之后(上例中为 2)?
    猜你喜欢
    • 2012-06-21
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    相关资源
    最近更新 更多