Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays_Numpy - Fatal编程技术网

Python 如何创建分量大于numpy中数字的向量?

Python 如何创建分量大于numpy中数字的向量?,python,arrays,numpy,Python,Arrays,Numpy,例如,我有这样一个向量: v = np.array([2, 4, 1, 7, 9, 3, 5]) 我想将每个分量与一个数字进行比较,以获得一个新的向量,该向量的分量大于等于该数字(如果原始分量小于该数字)。对于上述示例和limit=3结果应为: np.array([3, 4, 3, 7, 9, 3, 5]) 如何使用numpy?您只需 v[v <= 3] = 3 简要说明: v <= 3 指挥部呢 v[v <= 3] v[v您也可以使用numpy.clip: >

例如,我有这样一个向量:

v = np.array([2, 4, 1, 7, 9, 3, 5])
我想将每个分量与一个数字进行比较,以获得一个新的向量,该向量的分量大于等于该数字(如果原始分量小于该数字)。对于上述示例和
limit=3
结果应为:

np.array([3, 4, 3, 7, 9, 3, 5])
如何使用
numpy

您只需

v[v <= 3] = 3
简要说明:

v <= 3
指挥部呢

v[v <= 3]

v[v您也可以使用
numpy.clip

>>> np.clip(v, 3, None)
array([3, 4, 3, 7, 9, 3, 5])
第二个参数是最大值,但我只给出了最小值

这也可以通过
out
参数提供,在这种情况下,如果将自身作为目标,它将在适当的位置工作:

>>> x = np.clip(v, 3, None, v)
>>> id(x), id(v)
(4357557104, 4357557104)
>>> v
array([3, 4, 3, 7, 9, 3, 5])
>>>
文件:


如果内存受限(我相信不会创建中间布尔数组),这可能很有用。

您可以使用的只是
v[v
,即
v=np。其中(v<3,3,v)
arr=np.random.randint(0,10,1000000)
上,对于我的注释与就地剪裁:
30.3 ms±174µs/循环(平均值±标准偏差为7次运行,每个循环10次)
vs
22.6 ms±1.88 ms/次循环(平均值±标准偏差为7次运行,每个循环10次)
。剪辑也会赢得速度:)但是,当我不提供
out
作为参数时,速度没有差别,我认为创建中间布尔数组会有开销……所以我不相信在位
clip
也不会创建布尔数组。@roganjosh是的,坦率地说,我觉得阅读
numpy
源代码很困难,所以通常我会依靠这样的经验证据。
>>> np.clip(v, 3, None)
array([3, 4, 3, 7, 9, 3, 5])
>>> x = np.clip(v, 3, None, v)
>>> id(x), id(v)
(4357557104, 4357557104)
>>> v
array([3, 4, 3, 7, 9, 3, 5])
>>>
out : ndarray, optional
    The results will be placed in this array. It may be the input
    array for in-place clipping.  `out` must be of the right shape
    to hold the output.  Its type is preserved.