You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Pandas DataFrame中使用单参数调用np.arctan2计算风向的问题

解决方法

1. 纠正np.arctan2的参数调用方式

np.arctan2必须传入两个独立参数,格式为np.arctan2(y, x),其中y对应纵向(南北)分量,x对应横向(东西)分量。你之前的错误包括:

  • 传入除法结果作为单参数(这是np.arctan的用法,而非arctan2)
  • 错误添加/符号(这是函数定义中的位置参数标记,调用时无需传入)

2. 调整参数顺序以获取正确风向

你之前直接用np.arctan2(Cew, Cns)结果错误,核心原因是参数顺序颠倒。针对你的风分量定义(Cns为南北风分量、Cew为东西风分量),正确的参数顺序应为np.arctan2(df.Cns, df.Cew),这样才能准确判断角度所在象限。

3. 转换为-180°~180°的角度范围

np.arctan2返回的是弧度值,需用np.rad2deg()转换为角度。该函数本身的返回范围是[-π, π],转成角度后正好是你需要的[-180°, 180°]。

完整代码示例

import numpy as np
import pandas as pd

# 你的示例数据
df = pd.DataFrame({
    'day': [1, 1, 1],
    'hour': [0, 1, 2],
    'Cns': [126.002, -42.3775, 64.3313],
    'Cew': [-100.812, 18.6631, -121.167]
})

# 计算风向(角度范围-180~180)
df['wind_direction'] = np.rad2deg(np.arctan2(df['Cns'], df['Cew']))

运行后得到的结果:

dayhourCnsCewwind_direction
10126.0020-100.8120128.60
11-42.377518.6631-66.40
1264.3313-121.1670152.00

内容的提问来源于stack exchange,提问作者user2100039

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 06:05:23