【问题标题】:python numpy array reduction distance between elements [duplicate]python numpy数组减少元素之间的距离[重复]
【发布时间】:2021-11-09 16:35:52
【问题描述】:

我在 python 中有一个这样的数组:

array([     18,      36,      54, ..., 9893804, 9893822, 9893840],
      dtype=int64)

我希望获得一个数组,其中包含 ech 字节之间的“距离”...

在这种情况下,它将是: [18,18,18, ..., xxx, 18, 18]

为此,我使用了一个丑陋的for i in range(len(arr))

我怀疑有一种方法可以使用 np.flatnonzero(something) 我找不到.. 有什么线索吗?

【问题讨论】:

    标签: python arrays numpy flatten


    【解决方案1】:

    np.diff(arr)怎么样?

    arr = np.array(...)
    print(np.diff(arr)) # [18 18 18 ... 18 18 18]
    

    【讨论】:

    • 非常好!但我有一个问题:如果一个元素 >256,它必须变成 4 个元素,这样第一个是 00,其他 3 个是小端序的数字...
    • 所以我可以这样做:np.argwhere(data > 255) 来获取索引......显然我可以在 for 循环中插入所需的数据,但我正在学习 numpy.. 而我没有不知道如何使用 numpy 内部结构来做到这一点
    • @Zibri 我不确定是什么问题,你能举个例子和预期的输出吗?
    • @我必须创建一个包含距离的数组。像你一样。但如果距离>255,我必须写 00 XX XX XX 其中 XXXXX 是小端的距离。
    • 所以如果我这样做:z=np.argwhere(data > 255) np.where(data<256,data,data*4096) 我得到一个距离*4096 的数组,但作为单个元素我需要 4
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 2020-01-11
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 2011-07-16
    相关资源
    最近更新 更多