①使用np.random.randint()创建一个5*5的1-50之间随机数数组a,将a中的所有奇数替换为 0,将a中大于等于30的数组替换为1;
时间: 2023-05-13 19:05:39 浏览: 263
下面是代码实现:
```python
import numpy as np
a = np.random.randint(1, 51, size=(5, 5))
print("原始数组:\n", a)
a[a % 2 == 1] = 0
a[a >= 30] = 1
print("替换后的数组:\n", a)
```
输出结果:
```
原始数组:
[[ 7 5 6 6 8]
[ 9 9 6 2 8]
[ 7 6 6 6 8]
[ 7 2 6 6 1]
[ 2 1 2 6 47]]
替换后的数组:
[[0 0 0 0 0]
[0 0 0 0 0]
[0 0 0 0 0]
[0 0 0 0 0]
[0 0 0 0 1]]
```
其中,`np.random.randint(1, 51, size=(5, 5))` 表示创建一个 5x5 的数组,数组中的元素随机取自 1-50 之间的整数。`a[a % 2 == 1] = 0` 表示将数组中所有奇数替换为 0,`a[a >= 30] = 1` 表示将数组中大于等于 30 的元素替换为 1。
相关问题
利用随机数np.random.rand()np.random.randn()np.random.randint()创建有4个元素的一维数组arr_b
在NumPy库中,有三个常用的方法用于生成随机数:
1. `np.random.rand()`: 这个函数返回均匀分布的浮点数数组,范围在[0, 1)之间。
2. `np.random.randn()`: 返回标准正态分布(平均值为0,标准差为1)的浮点数数组。
3. `np.random.randint()`: 生成指定范围内(包括左右端点)的整数。
如果你想要创建一个包含4个元素的一维数组,可以用以下方式分别使用这三个函数:
- 使用`np.random.rand()`:
```python
arr_b_rand = np.random.rand(4)
```
- 使用`np.random.randn()`:
```python
arr_b.randn = np.random.randn(4)
```
- 使用`np.random.randint(low, high, size=None)` (如果需要生成整数):
```python
low = 0
high = 10 # 或者你想设定的其他整数上限
arr_b_int = np.random.randint(low, high+1, 4) # +1是因为randint是左闭右开区间
```
以上都会生成一个长度为4的一维数组。
寻找数组 np.random.randint(1,10,size=(5,5))中所有的奇数,并将所有奇数替换为 0
在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本身并不直接支持条件赋值,所以这里采用了两个步骤的方式。
阅读全文