python 中numpy中narry.where
时间: 2023-05-29 08:01:36 浏览: 86
numpy中的narry.where函数是一个条件语句,在满足特定条件的情况下返回一个数组。它有三个参数:condition,x和y。如果condition为True,则返回x中对应元素的值,否则返回y中对应元素的值。
以下是一个使用numpy.where函数的示例:
```
import numpy as np
# 创建一个数组
arr = np.array([1, 2, 3, 4, 5])
# 创建一个条件,即数组中大于2的元素
condition = arr > 2
# 使用numpy.where函数,对于满足条件的元素返回-1,否则返回1
new_arr = np.where(condition, -1, 1)
print(new_arr)
```
输出:
```
[ 1 1 -1 -1 -1]
```
在这个例子中,我们创建了一个数组arr和一个条件condition,即数组中大于2的元素。然后我们使用numpy.where函数,对于满足条件的元素返回-1,否则返回1。最后我们打印了新数组new_arr的值。
注意事项:
1. condition、x和y必须有相同的形状。
2. condition可以是一个任何类型的布尔数组,但是x和y必须是相同的数据类型。
3. 当x和y仅为单个值时,条件的输出将是一个标量。因此,x和y也可以表示两个标量值。
4. 当x和y都被省略时,numpy.where()将返回一个给定条件的元素的索引数组。
5. 如果condition,x和y都是numpy数组,则返回的数组将具有相同的类型和形状。
相关问题
Python中numpy.random.randn()
在Python中,numpy.random.randn()是一个numpy库中的函数,用于生成一个指定形状的随机数数组,其中每个元素都是从标准正态分布中随机抽取的。
具体来说,如果我们调用numpy.random.randn(m, n),则会生成一个m行n列的数组,其中每个元素都是从均值为0、方差为1的正态分布中随机抽取的。
示例代码如下:
```python
import numpy as np
# 生成一个2行3列的随机数数组
arr = np.random.randn(2, 3)
print(arr)
```
输出:
```
[[ 0.18313851 -0.85375361 0.47835931]
[ 0.45642406 -1.90232113 -0.26312012]]
```
python中的np where_numpy中的np.where
`np.where` 是 NumPy 库中的一个函数,用于根据给定条件返回输入数组中满足条件的元素的索引或者值。它的使用方法如下:
```python
import numpy as np
a = np.array([1, 2, 3, 4, 5])
condition = a > 3
print(np.where(condition))
```
这段代码会输出 `[3, 4]`,表示 `a` 数组中大于 3 的元素的索引。`np.where` 函数的第一个参数是条件,第二个参数是满足条件时返回的值,第三个参数是不满足条件时返回的值。如果只有一个参数,那么函数会返回满足条件的元素的索引。
`where` 函数是 Python 内置的函数,也可以用于根据条件返回元素的索引或者值。但是,它的用法与 `np.where` 函数略有不同。例如:
```python
a = [1, 2, 3, 4, 5]
condition = [True, False, False, True, True]
print([i for i, x in enumerate(a) if condition[i]])
```
这段代码实现了与上面相同的功能,但是需要用列表推导式手动遍历列表并返回满足条件的元素的索引。相比之下,`np.where` 函数更加方便快捷。