对二维numpy数组进行条件数学运算,对一维进行检查,对差异维进行不同的运算

备忘录

我有一个2D numpy数组,其中列0是设备的平移旋转,列1是倾斜旋转。每行是不同的灯具。我想在每一行上运行以下逻辑:

if(pantilt[0] > 90):
    pantilt[0] -=180
    pantilt[1] *= -1
elif pantilt[0] < -90:
    pantilt[0] += 180
    pantilt[1] *= -1

我了解一维的基本条件运算,例如myarray [condition] =某物。但是我无法将其推断出更多的维度。

hpaulj

我将计算一个掩码或布尔值索引,并为每个列使用if:

构造一个样本数组:

pantilt=np.column_stack([np.linspace(-180,180,11),np.linspace(0,90,11)])

I = pantilt[:,0]>90
# J = pantilt[:,0]<-90 
pantilt[I,0] -= 180
pantilt[I,1] *= -1

I = pantilt[:,0]<-90  # could use J instead
pantilt[I,0] += 180
pantilt[I,1] *= -1

前:

array([[-180.,    0.],
       [-144.,    9.],
       [-108.,   18.],
       [ -72.,   27.],
       [ -36.,   36.],
       [   0.,   45.],
       [  36.,   54.],
       [  72.,   63.],
       [ 108.,   72.],
       [ 144.,   81.],
       [ 180.,   90.]])

后:

array([[  0.,  -0.],
       [ 36.,  -9.],
       [ 72., -18.],
       [-72.,  27.],
       [-36.,  36.],
       [  0.,  45.],
       [ 36.,  54.],
       [ 72.,  63.],
       [-72., -72.],
       [-36., -81.],
       [  0., -90.]])

如果列是单独的1d数组,则效果也会很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用二维数组的元素进行数学运算吗?

来自分类Dev

数组差异,将一维数组与二维二维数组进行比较

来自分类Dev

使用usort()对具有二维排序条件的二维数组进行排序

来自分类Dev

对长度不同的二维数组进行排序

来自分类Dev

对二维数组行进行排序

来自分类Dev

如何对二维数组进行排序?

来自分类Dev

如何将一维向量与二维数组的元素进行比较

来自分类Dev

二维数组上的numpy逻辑运算

来自分类Dev

如何在python中对二维数组进行排序

来自分类Dev

在C#中对更大的二维数组进行排序

来自分类Dev

在C ++中对二维数组进行排序

来自分类Dev

Perl用引用对二维数组进行排序

来自分类Dev

根据列对二维int数组进行排序的过程

来自分类Dev

使用列索引进行二维数组排序

来自分类Dev

Java:使用二维数组作为网格进行绘图

来自分类Dev

在php中的二维数组中进行多次选择

来自分类Dev

在Ruby中对二维数组进行排序

来自分类Dev

遍历2个二维数组进行比较

来自分类Dev

在 C++ 中使用二维数组进行交换

来自分类Dev

在 C 中对二维数组(矩阵)进行排序

来自分类Dev

JavaScript - 按数字对二维数组进行排序

来自分类Dev

在 Swift 中对 Int 的二维数组进行排序

来自分类Dev

使用状态对二维对象数组进行排序

来自分类Dev

二维数组 - 按行对数字进行排序

来自分类Dev

用Excel进行二维搜索

来自分类Dev

根据条件对numpy数组的元素进行数学运算的有效方法

来自分类Dev

如何在C中对每列都是不同类型的二维数组进行排序?

来自分类Dev

一维数组 -> 二维数组

来自分类Dev

进行数学运算