Python 操作numpy数组的有效方法
假设我有一个numpy数组a=np.array[1,2,3,4,5]和一个值x=4,那么我想创建一个numpy数组,其中值-1和1在第四个位置有一个1,其他位置有一个-1 以下是我尝试过的:Python 操作numpy数组的有效方法,python,numpy,Python,Numpy,假设我有一个numpy数组a=np.array[1,2,3,4,5]和一个值x=4,那么我想创建一个numpy数组,其中值-1和1在第四个位置有一个1,其他位置有一个-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= n
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.]
试试这个:
b = np.array([1 if i == 4 else -1 for i in range(a.shape)])
尝试:
将numpy作为np导入
a=np.数组[1,2,3,4,5]
x=np,其中=4,1,-1
printx
输出:
[-1 -1 -1 1 -1]
[程序完成]
另一种选择。利用从布尔到int的转换
b=2*a==x-1是的,这很好,你的具体问题是什么?好的,酷,有没有一种方法可以在一行代码中完成?是的,删除特征线Range在你的示例中不起作用。如果需要int,则它需要是rangelenaOr b=-np.onesa.shape,dtype=int,否则它们是float。可以使用np.full_likea,-1稍微优化b的构造。更少的操作,更少的内存消耗。