如何将pandas DataFrame转换为NumPy数组并解决多一层中括号问题
你用np.array(df)得到的是形状为(21, 31)的二维NumPy数组,外层的中括号是二维数组的标准结构,你需要的21个长度为31的数组就是该二维数组的每一行元素,可通过以下方法实现需求:
- 方案1:将所有单行数组存入列表,方便按索引调用
# 转换后arr_list的第0位对应array_1,第1位对应array_2,以此类推 arr_list = [row for row in np.array(df)]
取出单个元素后打印的格式就是你需要的无外层多余括号的一维数组。
- 方案2:直接生成名为array_1到array_21的独立变量
for idx, row in enumerate(np.array(df), start=1): globals()[f"array_{idx}"] = row
运行后可直接调用array_1、array_2等变量使用。
- 方案3:仅需要按指定格式打印输出,不需要存储变量
for idx, row in enumerate(np.array(df), start=1): val_str = ", ".join([f"{x}" for x in row]) print(f"array_{idx} ({val_str})")
内容的提问来源于stack exchange,提问作者tanaytuncer
相关产品推荐
相关产品推荐

