python - Python - 用索引/值替换年份
问题描述
我有个问题。我有一个结构化的 numpy 数组,其年份数如下:
array_start([(2020),
(2020),
(2021),
(2021),
dtype=[('year', '<i8')])
在这个例子中,2020 年是最早的一年,但这可能会改变,所以我不能真正使用硬编码或使用字典的这一年。我想用这样的计数/索引替换年份列:
array_desired_1([(1),
(1),
(2),
(2),
dtype=[('year', '<i8')])
或者:
array_desired_2([(1, 2020),
(1, 2020),
(2, 2021),
(2, 2021),
dtype=[('year', '<i8'), ('index', '<i8')])
到目前为止,我唯一得到的就是找到一种方法来获得最早的年份:
earlies_year_mask = array_start['year'] == np.amin(array_start['year'])
但我不认为我在正确的轨道上……有人可以帮助我吗?这应该很容易,但我无法得到正确的答案..
解决方案
啊,我找到了答案!:
year_count = 1
for year in np.unique(array_start['year']):
array_start['year'][array_start['year'] == year] = year_count
year_count = year_count + 1
任何没有循环或更有效的答案仍然非常受欢迎:)
推荐阅读
- serverless-framework - 使用单独的无服务器离线包或 AWS SAM Local 或 Moto 库在本地运行 lambda
- python-3.x - 如何对列表中的列求和?
- javascript - 为什么 history.replaceState() 在 history.go() 方法之后不起作用?
- android - 将动态数组列表发送到 android 警报集多选项
- oracle - 在 oracle 上更新 for 循环需要很长时间
- java - 应用程序预计在 500-1000 次迭代后在没有 LOGCAT 的情况下在间隔崩溃时在后台运行
- python - 基于 '<=' 和 '>=' 的 Python 连接表
- angular - 如何在对象数组上使用不同的rxjs
- c# - 如何在 C# 中向变量添加“char”
- highcharts - Highcharts 视图数据表显示不正确的数据