gpt4 book ai didi

python - 使用Python数组的列作为 boolean 值来更改另一列的值

转载 作者:太空宇宙 更新时间:2023-11-03 16:58:31 25 4
gpt4 key购买 nike

我对 python 非常陌生,所以这可能就是为什么我无法在这个网站上正确搜索我的问题的答案,以防有人已经知道它。

我正在读取几个由六列组成的数据文件:XYZ 坐标和球体周围的 3 向量分量。我使用 X 和 Z 坐标来查找向量的角度位置,并将角度结果用作数组的新列,即第四列。所以,我有一个 7 列数组。

角度使用 np.arctan 计算,并根据 XZ 坐标所在的象限获得 (-) 或 (+) 符号。

现在,我想将球体上半部分周围的所有角度(Z 正值)设置为正值,范围从 0° 到 180°。另一方面,我希望下半部分周围的角度为负,从 0° 到 -180°。

改变符号和应用0°-180°范围的操作很容易实现。但是,我想使用数组的第三列(Z 坐标)作为 boolean 值来决定如何更改角度(数组的第四列)。我已经阅读了大量有关切片数组或根据应用于相同列/行的任意 boolean 条件修改列/行的信息。

我试图避免组合 for 循环和 if 语句,并学习如何使用 python 的强大功能:)

提前致谢!

最佳答案

np.where(cond, if_true, if_false) 解决了您认为遇到的问题:

fixed_angle = np.where(z > 0, angle, -angle)

实际遇到的问题是您没有使用 atan2 ,或者按照 numpy 的拼写,np.arctan2

关于python - 使用Python数组的列作为 boolean 值来更改另一列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35229713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com