Jim*_*y C 12 python numpy matrix
我有一个numpy ndarray,我想检查每个行向量是否单调增加.
例:
a = np.asarray([[1,2,3],[1,5,7],[4,3,6]])
monotonically_increasing(a)
Run Code Online (Sandbox Code Playgroud)
预期收益:
[True, True, False]
Run Code Online (Sandbox Code Playgroud)
我不完全确定如何有效地做到这一点,因为矩阵预计会非常大(~1000x1000),并希望得到一些帮助.
wwi*_*wii 27
>>> import numpy as np
>>> a = np.asarray([[1,2,3],[1,5,7],[4,3,6]])
Run Code Online (Sandbox Code Playgroud)
找出每个元素之间的差异. np.diff有一个参数,允许您指定轴来执行差异
>>> np.diff(a)
array([[ 1, 1],
[ 4, 2],
[-1, 3]])
Run Code Online (Sandbox Code Playgroud)
检查每个差异是否大于0.
>>> np.diff(a) > 0
array([[ True, True],
[ True, True],
[False, True]], dtype=bool)
Run Code Online (Sandbox Code Playgroud)
检查所有差异是否> 0
>>> np.all(np.diff(a) > 0)
False
>>>
Run Code Online (Sandbox Code Playgroud)
正如@Jaime所建议的那样 - 检查每个元素是否大于其左边的元素:
np.all(a[:, 1:] >= a[:, :-1], axis=1)
Run Code Online (Sandbox Code Playgroud)
这似乎是我的diff解决方案的两倍快/效率.
| 归档时间: |
|
| 查看次数: |
7646 次 |
| 最近记录: |