如何在保持顺序的情况下更新 numpy 数据中的非连续组

Posted

技术标签:

【中文标题】如何在保持顺序的情况下更新 numpy 数据中的非连续组【英文标题】:How to update non sequential groups in numpy data with keeping the order 【发布时间】:2021-12-16 15:17:17 【问题描述】:

我有两个来自同一个数据集的数据集。原始数据集分为target_datainput_data,如下:

target_data, type:numpy.ndarray
[12,
 14,
 11,
 17,
 9,
 10,
 7,
 2,
 21,
 27]

input_data, type: pandas.DataFrame
group_name
   'A' 
   'B'
   'B'
   'A'
   'A'
   'B' 
   'A'
   'B'
   'B'
   'A'

在这里,我正在尝试为input_data 中定义的每个组更新target_data。例如,对于group 'A',我需要将target_data 更新为当前值的2 倍。对于group 'B',我需要将target_data 更新为当前值的4 倍。想要的target_data

target_data, type:numpy.ndarray
[24,
 56,
 44,
 34,
 18,
 40,
 14,
 8,
 84,
 54]

有没有办法以pythonic方式做到这一点?

【问题讨论】:

都是numpy数组?不在 pandas 数据框中,对吧? target_data,类型:numpy.ndarray,input_data,类型:pandas.DataFrame 【参考方案1】:

你可以的

map_d = 'A':2,'B':4
array * df['input_data'].map(map_d).values

【讨论】:

我无权访问原始数据,我需要更新 numpy.ndarray 中的 target_data。 @user3104352 查看更新

以上是关于如何在保持顺序的情况下更新 numpy 数据中的非连续组的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Room 和 LiveData 保持 RecyclerView 顺序的更改?

如何在给定索引列表的情况下有效地更新 numpy ndarray

更改其他数据时如何保持日期不变?

如何在不退出的情况下更新会话值?

numpy中的非重复随机数

我是否可以在不立即呈现更改的情况下更新Firestore文档?