np.where的功能
时间: 2023-11-13 17:57:58 浏览: 159
np.where()是numpy库中的一个函数,它的作用是根据指定的条件返回输入数组中满足条件的元素的索引或者元素本身。具体来说,np.where(condition, x, y)的作用是:当condition为True时,返回x中对应位置的元素;当condition为False时,返回y中对应位置的元素。
举个例子,假设有一个一维数组a,我们想要将其中大于0的元素替换成1,小于等于0的元素替换成-1,可以使用np.where()函数实现:
```python
import numpy as np
a = np.array([1, -2, 3, 0, -4])
b = np.where(a > 0, 1, -1)
print(b) # 输出 [-1 -1 1 -1 -1]
```
在上面的例子中,我们将条件设为a > 0,即大于0的元素为True,小于等于0的元素为False。当条件为True时,返回1;当条件为False时,返回-1。
相关问题
def draw_line(zeroArray, C): notZeroRow = np.where(np.sum(zeroArray == 1, axis=1) == 0)[0] deletaZeroColumn = np.where(zeroArray[notZeroRow] == -1)[1] notZeroRow = np.concatenate((notZeroRow, np.where(np.isin(zeroArray[:, deletaZeroColumn], 1))[0])) '划线操作' lineListRow = np.setdiff1d(np.arange(zeroArray.shape[0]), notZeroRow) lineListColumn = deletaZeroColumn findMin = np.copy(C) findMin[lineListRow, :] = 100000 findMin[:, lineListColumn] = 100000 minIndex = np.unravel_index(np.argmin(findMin), findMin.shape) C[notZeroRow, :] -= findMin[minIndex[0], minIndex[1]] for i in notZeroRow: negatives = np.where(C[i, :] < 0)[0] if negatives.size > 0: C[:, negatives] += findMin[minIndex[0], minIndex[1]] return C 添加注释
以下是给上述代码添加注释的示例:
```python
def draw_line(zeroArray, C):
# 找出没有独立零元素的行
notZeroRow = np.where(np.sum(zeroArray == 1, axis=1) == 0)[0]
# 找出非独立零元素的列
deletaZeroColumn = np.where(zeroArray[notZeroRow] == -1)[1]
# 将具有独立零元素的行和非独立零元素的列合并
notZeroRow = np.concatenate((notZeroRow, np.where(np.isin(zeroArray[:, deletaZeroColumn], 1))[0]))
'划线操作'
# 找出需要划线的行
lineListRow = np.setdiff1d(np.arange(zeroArray.shape[0]), notZeroRow)
# 找出需要划线的列
lineListColumn = deletaZeroColumn
# 创建C的副本并将需要划线的部分设为一个极大数
findMin = np.copy(C)
findMin[lineListRow, :] = 100000
findMin[:, lineListColumn] = 100000
# 找到需要减去的最小值的索引
minIndex = np.unravel_index(np.argmin(findMin), findMin.shape)
# 在具有独立零元素的行上减去最小值
C[notZeroRow, :] -= findMin[minIndex[0], minIndex[1]]
# 消除负数元素
for i in notZeroRow:
negatives = np.where(C[i, :] < 0)[0]
if negatives.size > 0:
C[:, negatives] += findMin[minIndex[0], minIndex[1]]
return C
```
注释解释了每个步骤的目的和操作,使代码更易读和理解。这样其他开发人员在阅读或维护代码时,能够更清楚地了解代码的逻辑和功能。
torch.where np.where
torch.where()是PyTorch和NumPy中的函数,用于根据给定的条件选择元素。torch.where()用于PyTorch张量,而np.where()用于NumPy数组。
在PyTorch中,torch.where()函数接受一个条件和两个张量作为输入。它会根据条件选择元素,返回与条件为True的元素对应的索引。例如,如果我们有一个张量x,我们可以使用torch.where(x==0)来找到x中为0的元素的索引。
在NumPy中,np.where()函数的功能与torch.where()类似,但输入和输出的类型不同。np.where()函数接受一个条件和一个数组作为输入,并返回与条件为True的元素对应的索引。例如,如果我们有一个数组arr,我们可以使用np.where(arr==0)来找到arr中为0的元素的索引。
阅读全文