使用numpy数组输出列表中的第n个值

问题描述

下面是一个函数,它使用 numpy 和 reduce 函数查找 3 个列表 MNDW_drawdown,PRC_overall_prec,TTS_Total_Trades 中的常见数字。然而,输出一个 numpy 数组的形式,有什么办法可以将它转换成一个列表形式。我想使用 reduced 打印列表中的第 n 个值,因此它将是 list_[reduced]
代码

from functools import reduce
import numpy as np

list_ = [ 5268,6760,6761 ... 15149,15150,15151]
def intersect(l1,l2,l3) :#function
    reduced = reduce(np.intersect1d,(l1,l3))
    print(reduced)  
intersect(MNDW_drawdown,TTS_Total_Trades) #calling function

减少输出

[11858 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870
 13548 13549 13550 13551 13552 13553 13554 13555 13556 13557 13558 13559]

解决方法

问题的答案是reduced.tolist()

,

您可以按照其他答案中的建议使用 .tolist() 函数。另一种方法不是首先使用 numpy,而是使用内置的 set 类型,它提供了 .intersection 方法。将第一个列表转换为 set,然后为其余参数链接 .intersection 方法。但是,结果也将是 set,因此您无论如何都必须转换为列表。

def intersect(a: list,b: list,c: list) -> list:
    return list(set(a).intersection(b).intersection(c))

注意结果不会被排序。