操作 Numpy 数组的有效方法



假设我有一个 numpy 数组a= np.array([1,2,3,4,5])和一个值x=4,那么我想创建一个值的 numpy 数组,-11其中有一个14th位置,并在其他任何地方-1

这是我尝试过的:

for i in range(a):
if i == x:
a[i]=1
else:
a[i]=-1

这样好吗?

不,这不是麻木

b=-np.ones(a.shape)
b[x] = 1

编辑:添加示例

import numpy as np
x=3
a= np.array([1, 2, 3, 4, 5])
b=-np.ones(a.shape)
b[x] = 1
print(b)
> [-1. -1. -1.  1. -1.]

尝试:

import numpy as np
a= np.array([1,2,3,4,5]) 
x=np.where(a==4, 1, -1)
print(x)

输出:

[-1 -1 -1  1 -1]
[Program finished]

试试这个:

b = np.array([1 if i == 4 else -1 for i in range(a.shape)])

另一种选择。利用从布尔值到整数的转换。

b=2*(a==x)-1

最新更新