gpt4 book ai didi

python - 有效检查 numpy ndarray 值是否严格增加

转载 作者:太空狗 更新时间:2023-10-29 17:39:20 26 4
gpt4 key购买 nike

我有一个 numpy ndarray,我想在其中检查每个行向量是否单调递增。

例子:

a = np.asarray([[1,2,3],[1,5,7],[4,3,6]])
monotonically_increasing(a)

预期返回:

[True, True, False]

我不完全确定如何有效地执行此操作,因为预计矩阵会非常大 (~1000x1000),并希望得到一些帮助。

最佳答案

>>> import numpy as np
>>> a = np.asarray([[1,2,3],[1,5,7],[4,3,6]])

找出每个元素之间的差异。 np.diff有一个参数,可让您指定轴以执行差异

>>> np.diff(a)
array([[ 1, 1],
[ 4, 2],
[-1, 3]])

检查每个差异是否大于 0。

>>> np.diff(a) > 0
array([[ True, True],
[ True, True],
[False, True]], dtype=bool)

检查是否所有差异都 > 0

>>> np.all(np.diff(a) > 0)
False
>>>

正如@Jaime 所建议的那样——检查每个元素是否大于其左侧 的元素:

np.all(a[:, 1:] >= a[:, :-1], axis=1)

这似乎是我的 diff 解决方案的速度/效率的两倍。

关于python - 有效检查 numpy ndarray 值是否严格增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30734258/

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