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

Python中pandas读取CSV数组列相乘异常:数组扩容而非元素翻倍

解决CSV中数组元素乘2时大小翻倍的问题

问题原因

你读取的sigma列内容是字符串格式的数组(而非原生numpy数组),直接执行*2会触发序列重复操作(类似列表[a,b]*2得到[a,b,a,b]),而非元素级的数值乘法,所以才会出现数组大小翻倍的情况。

解决方案代码

import pandas as pd
import numpy as np
import ast

def parse_array_str(s):
    # 将字符串格式的数组解析为numpy数组
    arr_list = ast.literal_eval(s)
    return np.array(arr_list)

# 读取CSV文件
df = pd.read_csv("Data.csv")
# 把sigma列的字符串解析为numpy数组
df['sigma'] = df['sigma'].apply(parse_array_str)
# 对数组执行元素级乘2操作
result = df['sigma'][0] * 2
print("B[0] =", result)

代码说明

  1. ast.literal_eval:安全地将字符串形式的数组解析为Python列表,避免使用eval带来的安全风险
  2. 转成numpy数组后,*2会自动执行元素级乘法,每个元素的值变为原来的2倍
  3. 执行后输出会与你的预期一致:每个元素值翻倍,数组大小保持不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 04:27:27