【问题标题】:Dynamic Loops for Arrays [closed]数组的动态循环[关闭]
【发布时间】:2021-01-11 11:05:25
【问题描述】:

我想创建一个 TruthTable 制造商。所以如果我有一些 n 变量,我将有 2^n 行。每个语句只包含零和一。

例如,考虑 A^B。 A 的可能值为 [0, 1],B 的可能值为 [0, 1]。我想对 A 和 B 应用 AND。我不想以常规循环方式接近,因为如果变量大于 2,我应该针对每种可能性对循环进行硬编码。

有什么 numpy 方法可以满足我的要求吗?我的意思是为两个数组的每个元素应用一个操作。

【问题讨论】:

    标签: python numpy discrete-mathematics truthtable


    【解决方案1】:

    这应该对你有用-

    import numpy as np
    
    # the resulting table need not be square
    A = np.array([[0, 1]])
    B = np.array([[0, 1, 1]])
    # repeat B 'row' times
    rows = A.shape[1]
    B = np.tile(B, (rows, 1))
    # transpose A to columns and perform element wise logical and operation
    print A.T & B
    
    print (A.T & B) != 0
    

    输出

    [[0 0 0]
     [0 1 1]]
    
    [[False False False]
     [False  True  True]]
    

    ps-我会说问题的标题并没有完全抓住你问题的本质

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-20
      • 2018-03-07
      • 2015-05-04
      • 2013-12-17
      • 1970-01-01
      • 2019-01-29
      • 2016-07-10
      • 2012-12-26
      相关资源
      最近更新 更多