gpt4 book ai didi

python - 如何从python中的整个3D数组中提取上限值

转载 作者:行者123 更新时间:2023-11-28 17:56:00 25 4
gpt4 key购买 nike

是否可以从整个 3D 数组中提取上限值?下面是一个 3D 数组的简单示例:

import numpy as np

a = np.array([[[7, 4, 2], [5, 0, 4], [0, 0, 5]],
[[7, 6, 1], [3, 9, 5], [0, 8, 7]],
[[8, 10, 3], [1, 2, 15], [9, 0, 1]]])

最佳答案

您可以使用 numpy building-matricesnumpy.triu这样的功能(三角形上)或 numpy.tril (triangle-lower) 返回矩阵的副本,其中第 k 个对角线上方或下方的元素归零。

另一方面,如果您只对对角线上方或下方的值感兴趣(没有矩阵副本),您可以简单地使用 numpy.triu_indicesnumpy.tril_indices ,如下:

upper_index = np.triu_indices(n=3, k=1)

其中 n 是返回索引有效的数组的大小,k 是对角线偏移量。

并返回三角形的索引。返回的元组包含两个数组,每个数组都有沿数组一维的索引:

(array([0, 0, 1], dtype=int64), array([1, 2, 2], dtype=int64))

现在您可以使用获得的索引作为数组的索引,您将获得:

a[upper_index]

并给出:

array([[5, 0, 4],
[0, 0, 5],
[0, 8, 7]])

同样,您可以使用 numpy.tril_indices 找到对角线下的部分。

关于python - 如何从python中的整个3D数组中提取上限值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58395684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com