鱼C论坛

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

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

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

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

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

x
pre = torch.nn.functional.softmax(torch.tensor(np.array(pre_valid).flatten(),dtype=torch.float32),dim=-1)
result = np.argmax(pre,axis=1)
上述代码报错
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[112], line 1
----> 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)

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)的列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

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

以下是修改后的代码:
import numpy as np
import torch
import pandas as pd

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

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

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

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

print(series_result)

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 18:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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