【问题标题】:python Numppy array get the last 3 values to identify its accending or decending or inorderpython Numpy数组获取最后3个值以识别其升序或降序或按顺序
【发布时间】:2021-10-07 07:37:48
【问题描述】:

我正在尝试使用 NumPy 数组或普通数组执行以下操作:

为了推送我正在做的数据:

ar1 = []

#Read from Pandas dataframe column. i is row number of data - it's working fine.
ar1.append((df['rolenumber'][i]))  

输出:

[34768, 34739, 34726, 34719, 34715]  

这个结果可能是升序/降序或组合任何可能的结果。

这里我要取最后3个值来验证是升序还是降序还是混合。

  • 升序:如果最后 3 个值定期增加。示例:34726, 34739, 34745

  • Descending:如果最后 3 个值正确减小。示例:34726, 34719, 34715

  • 混合:如果最后 3 个以大数字开头然后小数字然后大数字。示例:34726, 34719, 34725

注意:不需要排序,只需要验证。

【问题讨论】:

  • 即使最后3个值被排序了不代表整个数组都被排序了?
  • 可能。数组可以有超过 3 个值。每次都会更新-每次推送时我只需要验证最后 3 个。如果条件匹配与否。不用担心以前的值
  • 只有最后 3 个值需要 validate 。该升序或降序或无序
  • 如果您只需要检查 3 个值是否已排序,您真的不需要 numpy 的高级知识?
  • 这能回答你的问题吗? Check if a numpy array is sorted

标签: python arrays python-3.x numpy sorting


【解决方案1】:

这个小sn-p应该让你继续前进:

a = np.array([34768, 34739, 34726, 34719, 34715])

is_descending = np.all(np.diff(a[-3:]) < 0)
is_ascending = np.all(np.diff(a[-3:]) > 0)
is_mixed = ~(is_ascending | is_descending)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 2021-11-07
    • 2018-03-18
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 2019-07-17
    相关资源
    最近更新 更多