python - Python ValueError:形状不匹配:无法将对象广播到单个形状
问题描述
我的数据集文件看起来像
__label__ita Adesso datemi le chiavi.
__label__ara ياله من طفل محبب! يييي!
__label__eng You're a really bad bartender.
__label__epo En kiu hotelo vi restados?
__label__spa Él dijo haber perdido su vigor a los cuarenta.
__label__tat Сиңа булышмакчы идем.
__label__heb את מה פותח המפתח הזה?
__label__eng I caught a glimpse of him from the bus.
__label__eng I advise you to do that today.
__label__jpn この歌の歌い方を教えてくれますか。
__label__deu Ich habe gewusst, dass ihr Tom nicht vergessen würdet.
我正在使用这个函数来解析第一列标签
def parse_labels(path):
with open(path, 'r') as f:
return np.array( list(map(lambda x: x[9:], f.read().decode('utf-8').split() )) )
所以我拆分行并通过示例ita
从前缀中获取标签__label__ita
,但由于某种原因它中断了
test_labels = parse_labels(args.test)
print("Test labels:%d (sample)\n%s" % (len(test_labels),test_labels[:1]) )
print("labels:%s" % test_labels)
我得到
Test labels:71828 (sample)
[u'ita']
labels:[u'ita' u'' u'' ... u'' u'' u'']
虽然我应该有
[u'ita',u'ara',u'eng',...]
解决方案
您问题的标题似乎与内容不符,我正在回答正文中提出的问题。我使您的代码更加模块化并对其进行了测试。它返回您在问题结尾处拥有的所需列表 ( u'ita',u'ara',u'eng',...]
):
def parse_labels(path):
test_labels = []
with open(path,'rb') as f:
for line in f:
test_labels.append(line.decode('utf-8').split(' ')[0][10:])
return [x for x in test_labels if x] #removes empty strings
parse_labels(args.test)
推荐阅读
- python - 如何将 Python 站点包文件夹(不包括在内)添加到 PyInstaller 规范文件?
- powerbi - 如何从 PowerBI 读取我的 ADLS Gen 1 中的镶木地板文件?
- javascript - Azure AD 身份验证使用 idToken 或 accessToken 失败。我应该使用哪一个?
- c# - 使 IObservable 订阅并发
- graphql - AWS Appsync Javascript 查询示例和输入语法
- javascript - 到达较小的断点时,滑块导航突然出现
- azure-active-directory - 如何在 24 小时后强制执行 MFA 会话到期
- visual-studio-code - 是否可以检测 VS Code 何时处于活动/非活动状态一段时间?
- python - 在 Python 中绘制 2 级 NEXRAD 雷达数据 - TypeError:“MaskedArray”对象不可调用
- python - 在 Panda 中对聚合值进行排序