寻找数组 np.random.randint(1,10,size=(5,5))中所有的奇数,并将所有奇数替换为 0
时间: 2024-11-23 10:40:54 浏览: 27
在Python中,你可以使用NumPy库中的条件索引来找到`np.random.randint(1,10,size=(5,5))`中的所有奇数,然后通过赋值操作替换它们为0。以下是步骤:
```python
import numpy as np
# 生成一个5x5的随机整数数组,范围从1到9(包括1和9)
arr = np.random.randint(1, 10, size=(5, 5))
# 使用条件索引来找出所有奇数(因为模2余数为1的数是奇数)
odd_numbers = arr[arr % 2 != 0]
# 创建一个新的全零数组,与原数组的形状相同
zeros_arr = np.zeros_like(arr)
# 对于原数组中的每一个位置,如果数值是奇数,则替换为0
for i in range(arr.shape[0]):
for j in range(arr.shape[1]):
if arr[i][j] in odd_numbers:
zeros_arr[i][j] = 0
# 替换后的数组就是所有奇数被替换为0的结果
result = zeros_arr
print("Original Array:")
print(arr)
print("\nArray after replacing all odd numbers with 0:")
print(result)
```
以上代码首先找到了所有的奇数,然后创建了一个同样大小的全零数组,最后遍历原数组并替换奇数。由于NumPy本身并不直接支持条件赋值,所以这里采用了两个步骤的方式。
阅读全文