Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 操作numpy数组的有效方法_Python_Numpy - Fatal编程技术网

Python 操作numpy数组的有效方法

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

假设我有一个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= 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的构造。更少的操作,更少的内存消耗。