python - 根据给定的索引对列表连接二维数组行的有效方法
问题描述
假设我有一个包含大量行的二维数组,以及该数组的索引对列表。我想创建一个新的 2 dim 数组,其行是原始数组行的串联,根据索引对列表制作。例如:
a =
1 2 3
4 5 6
7 8 9
0 0 0
indexes = [[0,0], [0,1], [2,3]]
返回的数组应该是:
1 2 3 1 2 3
1 2 3 4 5 6
7 8 9 0 0 0
显然我可以迭代索引列表,但我的问题是是否有更有效的方法来做到这一点。应该说索引列表也很大。
解决方案
您可以使用 as 在一行中执行此操作NumPy
:
a = np.arange(12).reshape(4, 3)
print(a)
b = [[0, 0], [1, 1], [2, 3]]
b = np.array(b)
print(b)
c = a[b.reshape(-1)].reshape(-1, a.shape[1]*b.shape[1])
print(c)
'''
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
[[0 0]
[1 1]
[2 3]]
[[ 0 1 2 0 1 2]
[ 3 4 5 3 4 5]
[ 6 7 8 9 10 11]]
'''
推荐阅读
- kotlin - 如何将大量 LiveData 组合在一起并转换为单个实体?
- android-dialogfragment - 升级 android 10 Q DialogFragment 后不起作用
- excel - 遍历范围的每个循环所需的对象
- java - Java Scanner 的 nextLine() 方法没有找到任何行
- sql-server - 为什么在此 SQL 2008 查询中连接 varchar 时会有空格?
- shopify - Shopify 购物车 Webhook - 额外数据
- django-rest-framework - 为什么我无法在项目目录上创建虚拟环境?
- php - RewriteEngine On 不工作但重定向工作
- python - 要在列表中列出的 Python 字符串
- javascript - 身份验证失败,原因是:缺少自定义请求令牌 cookie