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

如何将Pandas中同属性多列数据转为Numpy二维矩阵存储?

提取Pandas数据集中分散列的属性为Numpy浮点矩阵

我来帮你搞定这个问题,把分散在12列的chroma_cens的kurtosis属性转换成浮点型Numpy二维矩阵其实很直观,分几步操作就行:

步骤1:定位目标列

首先你需要确认DataFrame中哪12列对应chroma_cens的kurtosis属性。根据你描述的数据集结构,这12列要么是前12列(因为首行特征里chroma_cens重复12次对应这些数值),要么是列名包含chroma_cens和kurtosis标识的列。

  • 如果是前12列,直接通过位置筛选:
    target_cols = df.columns[:12]
    
  • 如果列名有明确标识(比如chroma_cens_kurtosis_1到chroma_cens_kurtosis_12),可以用列名匹配并确保顺序正确:
    # 筛选包含关键词的列
    target_cols = [col for col in df.columns if 'chroma_cens' in col and 'kurtosis' in col]
    # 按编号排序,保证1-12的顺序
    target_cols = sorted(target_cols, key=lambda x: int(x.split('_')[-1]))
    

步骤2:转换为Numpy浮点矩阵

定位到目标列后,直接提取数值并转换为浮点型Numpy数组:

# 提取数据并转换为float类型,再转为Numpy数组
kurtosis_matrix = df[target_cols].astype(float).values

如果你需要特定的浮点类型(比如float32),可以修改astype的参数:

kurtosis_matrix = df[target_cols].astype('float32').values

验证结果

你可以通过以下代码确认结果符合预期:

print("矩阵形状:", kurtosis_matrix.shape)  # 输出应为 (数据集行数, 12)
print("数据类型:", kurtosis_matrix.dtype)  # 输出应为 float64 或 float32
print("第一行数据:", kurtosis_matrix[0])  # 对应你提供的首行12个数值

这样得到的kurtosis_matrix就是每行对应原数据一行、每个行向量包含12个浮点数值的二维矩阵了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:50:09