小编pin*_*eng的帖子

Numpy,如何使用布尔切片获得子矩阵

我有一个问题:如何通过布尔切片获得子矩阵像子数组?

例如:

    a2 = np.array(np.arange(30).reshape(5, 6))
    a2[a2[:, 1] > 10]
Run Code Online (Sandbox Code Playgroud)

会给我:

    array([[12, 13, 14, 15, 16, 17],
           [18, 19, 20, 21, 22, 23],
           [24, 25, 26, 27, 28, 29]])
Run Code Online (Sandbox Code Playgroud)

但:

    m2 = np.mat(np.arange(30).reshape(5, 6))
    m2[m2[:, 1] > 10]
Run Code Online (Sandbox Code Playgroud)

会给我:

    matrix([[12, 18, 24]])
Run Code Online (Sandbox Code Playgroud)

为什么输出不同?如何从矩阵得到与数组相同的结果?

谢谢!

python arrays numpy matrix

5
推荐指数
1
解决办法
2085
查看次数

Python:如何计算我的递归函数执行的次数?

假设我有一个二叉搜索树 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]

如果我运行以下函数,我想知道递归函数执行了多少次(在以下示例中为31)

def loopBST(root):
    if not root:
        return
    loopBST(root.left)
    loopBST(root.right)
Run Code Online (Sandbox Code Playgroud)

我可以通过创建一个全局变量来获得

global ind 
ind = 0
def loopBST(root):
    global ind
    ind += 1
    if not root:
        return
    loopBST(root.left)
    loopBST(root.right)
loopBST(bsttree)
Run Code Online (Sandbox Code Playgroud)

变量ind将为31。

问题是,如何inddfs函数内部创建此变量而不是创建全局变量?

python recursion

0
推荐指数
2
解决办法
1802
查看次数

标签 统计

python ×2

arrays ×1

matrix ×1

numpy ×1

recursion ×1