python 从 arr 中提取所有奇数 输入: arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 期望输出: array([1, 3, 5, 7, 9]) 至少两种方法实现。
时间: 2023-10-04 19:03:32 浏览: 99
方法1:
```python
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
result = arr[arr % 2 != 0]
print(result)
```
输出:
```
array([1, 3, 5, 7, 9])
```
方法2:
```python
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
result = arr[np.where(arr % 2 != 0)]
print(result)
```
输出:
```
array([1, 3, 5, 7, 9])
```
两种方法的思路都是利用布尔索引,根据数组元素是否满足奇数条件来选择相应的元素。方法1直接在数组上进行条件判断,而方法2使用np.where函数来获取满足条件的元素的索引,然后根据索引选择相应的元素。
相关问题
如何从数组arr=np.array([0,1,2,3,4,5,6,7,8,9])中提取所有奇数
可以使用NumPy中的布尔索引来提取所有奇数。具体而言,我们可以使用以下代码:
```python
import numpy as np
arr = np.array([0,1,2,3,4,5,6,7,8,9])
odd_nums = arr[arr % 2 != 0]
print(odd_nums)
```
输出结果为:
```
[1 3 5 7 9]
```
在这里,我们首先使用arr % 2 != 0生成一个布尔数组,该数组指示哪些元素是奇数。然后,我们使用该布尔数组作为索引来选择所有奇数。
如何从数组arr=np.array([0,1,2,3,4,5,6,7,8,9])中提取所有奇数用切片
可以使用切片操作来提取数组中的所有奇数。我们可以使用步长(step)为2的切片操作来跳过偶数元素,只保留奇数元素。具体操作如下:
```python
arr = np.array([0,1,2,3,4,5,6,7,8,9])
odd_arr = arr[1::2] # 从索引1开始,每隔2个元素取一个,即取所有奇数
print(odd_arr) # 输出 [1 3 5 7 9]
```
在这个例子中,我们从索引1开始,每隔2个元素取一个,即取所有奇数。注意,切片操作是左闭右开区间,因此不需要指定结束索引,最后一个元素会被自动排除。