【发布时间】:2018-09-06 02:37:41
【问题描述】:
我已经用 C 语言编程好几年了,但我是 Python 的新手,所以对于我在下面的疑问,我提前道歉。我已经在互联网上对此进行了研究,但未成功。
我有一个巨大的数据集,它有几列。我需要使用三个特定的列。我们称它们为 DATA、CRITERIA1 和 CRITERIA2。我将它们每个都作为 numpy ndarray。
两个 CRITERIA 中的元素都是整数;形状 = (777777,) 和类型 = int32 DATA 中的元素是复数矩阵;形状 = (3,5,777777) 和类型 = complex128
我将维度 777777 称为“行号”。
对于所有满足的行:
((5<CRITERIA1<9) && (CRITERIA2!=7))
对应行的矩阵元素必须乘以 (3,2i)。
我可以使用 FOR 循环和 IF 轻松做到这一点。
但是,有人告诉我 Python 有能力立即完成,无需 FOR 和 IF。是真的吗??怎么样???
您好!
【问题讨论】:
-
不,python 没有这种魔力...使用 numpy 库,
for loops在 C 级别(编写库的 C 编程语言)抽象,但执行仍然需要迭代这些值,即使它对用户隐藏。例如,如果x和y是 numpy 数组,您可以在 python 中编写x + y来对元素进行成对求和,但是,在 numpy 实现级别,有一个循环遍历数组。跨度>