aph*_*aph 3 python optimization numpy scientific-computing pandas
我在python中寻找一个优化的工具来执行一个数组操作任务,我发现自己一遍又一遍地做.如果该工具已经存在,例如在numpy或pandas中,我宁愿实现,而是继续使用我自己的cythonized for循环.
我有两个相同长度的数组,A和B,存储有关分组数据的一些数据.数组A的第i个条目告诉我第i组的一些属性; 数组B的第j个条目告诉我j组中有多少成员; 商店花车,B商店注册.因此,为了确定性,如果A [5] = 100.4&B [5] = 7,则组5的质量等于100.4,并且该组中有7个成员.
我的目标是创建一个新的浮点数组C,长度为B.sum(),这是上述数据集的扩展.所以C [0:B [0]] = A [0],C [B [0]:B [1]] = A [1],依此类推.是否有优化的解决方案可以在现有的库中执行此操作,例如pandas?
我现有的解决方案是初始化一个空数组C,然后在A的元素上运行for循环,如上所述索引C的公共元素.为了速度,我一直在编写和编译cython中的for循环.但是这个特定的操作是我的代码中最大的瓶颈,在使用表格数据时,它似乎是一个非常常见的数组操作,所以我想知道是否有一个高度优化的算法已经做到了.
Numpy对这类事情有重复().
给定两个数组
A = np.array([100.4,98.3,88.5])
B = np.array([7,3,10])
np.repeat(A,B)
Run Code Online (Sandbox Code Playgroud)
会给你
array([ 100.4, 100.4, 100.4, 100.4, 100.4, 100.4, 100.4, 98.3,
98.3, 98.3, 88.5, 88.5, 88.5, 88.5, 88.5, 88.5,
88.5, 88.5, 88.5, 88.5])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |