鱼C论坛

 找回密码
 立即注册
查看: 316|回复: 1

不均匀数组如何转化成一维series

[复制链接]
发表于 2024-11-7 17:58:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. pre = torch.nn.functional.softmax(torch.tensor(np.array(pre_valid).flatten(),dtype=torch.float32),dim=-1)
  2. result = np.argmax(pre,axis=1)
复制代码

上述代码报错
  1. ---------------------------------------------------------------------------
  2. ValueError                                Traceback (most recent call last)
  3. Cell In[112], line 1
  4. ----> 1 pre = torch.nn.functional.softmax(torch.tensor(np.array(pre_valid).flatten(),dtype=torch.float32),dim=-1)
  5.       2 result = np.argmax(pre,axis=1)

  6. ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (229,) + inhomogeneous part.
复制代码

其中pre_valid是形状为(229,2)的列表
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-11-7 18:20:40 | 显示全部楼层
根据错误信息,`pre_valid` 是一个形状为 (229, 2) 的列表,其中包含了不规则形状的数据。要解决此问题并将其转换为一维的 `Series`,你可以执行以下步骤:

1. 将 `pre_valid` 转换为 NumPy 数组并展平为一维。
2. 使用 PyTorch 的 `softmax` 函数来处理扁平化后的一维数据。
3. 使用 `np.argmax` 找出最大值对应的索引。

以下是修改后的代码:

  1. import numpy as np
  2. import torch
  3. import pandas as pd

  4. # 将 pre_valid 转为 NumPy 数组并展平
  5. pre_valid = np.array(pre_valid, dtype=object)
  6. flattened = np.concatenate(pre_valid).astype(np.float32)

  7. # 计算 softmax
  8. pre = torch.nn.functional.softmax(torch.tensor(flattened), dim=-1)

  9. # 找出最大值对应的索引
  10. result = np.argmax(pre.numpy())

  11. # 可选:将结果转换为 pandas Series
  12. series_result = pd.Series(pre.numpy())

  13. print(series_result)
复制代码


关键是先将 `pre_valid` 整合为一维数组,然后再应用 `softmax` 和 `argmax` 操作。通过 `numpy.concatenate` 方法,我们能够展开不规则形状的数据。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-18 16:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表