我最近开始使用 NumPy(到目前为止它真的很有用——为什么我不早点开始使用它?),但我仍然确定我做错了一些事情:
如何将函数应用于向量(ndarray)?我希望它被矢量化,它是一个比乘法更复杂的函数。我试过使用
np.where
,但这似乎是一个丑陋的解决方案(我也不确定它是否矢量化)。是否有类似于 map 的函数,以便我的函数被矢量化?假设我有一个二维数组——只是一个二维位置向量的数组,假设我想找到每个向量的范数,如果它超过某个值,就做任何事情。
np.where
似乎是一个很好的解决方案,但除非我转置数组,否则它将不起作用:(np.where(sum(a.T**2) > 10, a * 2, 0)
只是一个任意示例)。这看起来真的很冗长,转置没有多大意义。最后,如果我有一个三维数组 - 二维位置向量的二维数组(这样在位置 [1, 2] 将是向量 (1, 2))。如何遍历所有向量(使用向量化函数,例如 np.where)?我一直在使用
np.reshape
,但如果可能的话,我想保持数组相同的形状。
我将这些问题组合在一起,因为它们看起来很相似,但是如果我需要将它们分成单独的线程,请告诉我,我会这样做。