指定多维数组相加的位置
时间: 2024-12-08 18:20:07 浏览: 8
matlab-多维数组
在Python中,如果你有一个多维数组(通常是列表嵌套列表或其他可迭代容器),你可以使用列表推导式或者numpy库中的操作来指定特定位置进行元素相加。这里我们将分别介绍两种方法:
**1. 列表推导式**:
假设我们有两个二维列表 `array1` 和 `array2`,你想按位置 `[i, j]` 相加,你可以这样做:
```python
def add_at_position(array1, array2, position):
i, j = position
return [row[:j] + [array1[i][j] + array2[i][j]] + row[j+1:] for row in array1]
position = (0, 0) # 例如,你想在左上角位置相加
result = add_at_position(array1, array2, position)
```
**2. 使用numpy库**:
如果`array1` 和 `array2` 都是numpy数组,可以更方便地使用索引和广播:
```python
import numpy as np
def add_arrays_at_position(array1, array2, position):
i, j = position
result = np.copy(array1) # 创建一个副本避免直接修改原数组
result.flat[i * array1.shape[1] + j] += array2.flat[i * array1.shape[1] + j]
return result
# 注意numpy数组的索引是从0开始的
position = (0, 0)
array1_np = np.array(array1)
array2_np = np.array(array2)
result_np = add_arrays_at_position(array1_np, array2_np, position)
```
阅读全文