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

如何将Pandas DataFrame转换为NumPy数组?如何从含IBM股票价格的Pandas DataFrame中提取收盘价列生成NumPy数组?

嘿,这两个问题都是Pandas和NumPy交互里的常见需求,我来给你一步步讲清楚!

问题1:如何将Pandas DataFrame转换为NumPy数组?

有几种简单可靠的方法,推荐优先用官方指定的方式:

  • 使用DataFrame.to_numpy()(官方推荐):这是最清晰、最符合现代Pandas用法的方法,还能按需指定数据类型:
    import pandas as pd
    import numpy as np
    
    # 示例DataFrame
    df = pd.DataFrame({'col1': [10, 20, 30], 'col2': [40, 50, 60]})
    # 转换为NumPy数组,可选指定数据类型
    numpy_array = df.to_numpy(dtype=np.float64)
    
  • 使用numpy.asarray():直接传入整个DataFrame,就能把所有列转换成数组:
    numpy_array = np.asarray(df)
    
  • 旧版.values属性:这个方法现在也能用,但to_numpy()的语义更明确,更推荐前者:
    numpy_array = df.values
    
问题2:提取收盘价列转换为NumPy数组

你说的没错,直接用np.asarray(df)会把所有列都包含进来,解决办法很简单——先选中close列,再转换,具体有几种方式:

  • 方式1:选中列后用to_numpy():
    # 假设你的股票数据DataFrame名为 ibm_stock_df
    close_array = ibm_stock_df['close'].to_numpy()
    
    这里ibm_stock_df['close']返回的是一个Pandas Series,转成数组后就是一维的收盘价数组。
  • 方式2:用np.asarray()直接处理选中的列:
    close_array = np.asarray(ibm_stock_df['close'])
    
  • 如果需要二维数组(保留列维度):用双括号选中列(返回的是DataFrame),再转换:
    close_array_2d = ibm_stock_df[['close']].to_numpy()
    
    这样得到的数组形状会是(行数, 1),而不是一维的(行数,)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 03:57:47