【问题标题】:Addin through a numpy array using indexes Python使用索引 Python 通过 numpy 数组添加
【发布时间】:2021-06-02 18:23:25
【问题描述】:

我正在尝试编写一个 numpy 函数,如果索引中的最后一个元素不等于len(Numbers),它将添加indexes 值的序列部分。所以Numbers的长度是14,indexes中的最后一个索引值是11,所以由于11小于14,while循环将序列3的第一个元素添加到indexes数组的末尾. 11+ 3= 14indexes 的更新版本变为[0, 3 , 7, 11,14]。程序再次检查indexes= 14 中的最后一个索引和Numbers 中的最后一个元素 = 14,因此它停止。下面的代码有问题,我该如何解决?

Numbers = np.array([1, 5, 6,7,4,3,6,7,11,3,4,6,2,20])
indexes = np.array([0, 3 , 7, 11])

p= 1
while len(Numbers) > indexes[-1]:
    np.concatenate(indexes, indexes[p])
    p= p+ 1
    if p ==4:
        p = 1

预期输出

indexes = [0, 3 , 7, 11,14]

【问题讨论】:

    标签: python arrays function numpy iterator


    【解决方案1】:

    这里是:

    import numpy as np
    
    
    numbers = np.array([1, 5, 6, 7, 4, 3, 6, 7, 11, 3, 4, 6, 2, 20])
    indexes = np.array([0, 3, 7, 11])
    
    while numbers.shape[0] > indexes[-1]:
        diff = (numbers.shape[0] - indexes[-1]) + indexes[-1]
        indexes = np.append(indexes, diff)
    
    print(indexes)
    

    它比您想象的要简单。
    这里diff = (len(numbers) - indexes[-1]) + indexes[-1]我检查numbers长度和indexes中最后一个元素之间的差异,并将这个差异添加到indexes中的最后一个元素
    在这里diff = (len(numbers) - indexes[-1]) + indexes[-1] 我只是将结果值附加到indexes

    【讨论】:

      猜你喜欢
      • 2021-06-02
      • 2021-06-03
      • 2021-08-12
      • 2021-12-01
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 1970-01-01
      相关资源
      最近更新 更多