Python 基于其他阵列的条件从现有阵列创建阵列
Python 基于其他阵列的条件从现有阵列创建阵列,python,arrays,conditional-statements,Python,Arrays,Conditional Statements,itmpath是一个包含719255(整数值)的列表。 Pt是一个带有浮点64值的719255x1矩阵/数组。 C是一个具有浮点64值的719255x1矩阵/数组 我想在Pt>C中提取索引值,然后使用这些索引值从itmpath中提取与这些索引值对应的值,然后将这些值存储在一个新数组中,称为expath。我已尝试使用以下代码: exPaths = itmPaths[index for index,value in enumerate(Pt-C) if value > 0] 在Mat
itmpath
是一个包含719255(整数值)的列表。Pt
是一个带有浮点64值的719255x1矩阵/数组。C
是一个具有浮点64值的719255x1矩阵/数组
我想在Pt>C
中提取索引值,然后使用这些索引值从itmpath
中提取与这些索引值对应的值,然后将这些值存储在一个新数组中,称为expath
。我已尝试使用以下代码:
exPaths = itmPaths[index for index,value in enumerate(Pt-C) if value > 0]
在Matlab中,我可以使用以下方法成功完成此操作:
exPaths = itmPaths(Pt>C);
我想让代码尽可能的高效。谢谢。使用列表理解,您可以做到这一点,但正如我不知道您所说的矩阵的确切结构一样,您可以调整,但压缩都允许跟踪索引(提取后面的值)和值(应用条件)
请分享aray的代码而不是文本来解释它们
exPaths = [itmPaths[idx] for idx, pc in enumerate(zip(Pt, C)) if pc[0] > pc[1]]