a = np.random.random([100,3]) b = np.arange(100).reshape([100,1]) a = np.concatenate([a,b],axis=-1) c = np.random.random([7,3]) d = np.array([1,5,8,11,52,45,31]) c = np.concatenate([c,d],axis=-1) c中的-1列代表a中的索引位置,以此快速更新a的数值,避免使用循环造成计算效率低怎么用代码实现
时间: 2023-11-22 10:54:20 浏览: 95
numpy.random.shuffle打乱顺序函数的实现
下面是使用代码实现的方法:
```python
import numpy as np
# 生成随机数矩阵a和索引矩阵b
a = np.random.random([100,3])
b = np.arange(100).reshape([100,1])
# 将索引矩阵b拼接到a中
a = np.concatenate([a,b],axis=-1)
# 生成随机数矩阵c和索引数组d
c = np.random.random([7,3])
d = np.array([1,5,8,11,52,45,31])
# 将索引数组d拼接到c中
c = np.concatenate([c,d.reshape(-1,1)],axis=-1)
# 更新a中指定位置的数值
a[c[:,-1].astype(int),:] = c[:,:-1]
print(a)
```
通过将索引位置拼接到矩阵中,可以直接使用索引来更新对应位置的数值,避免使用循环造成计算效率低的问题。
阅读全文