Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.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,不管怎样,只要绝对值大于一个数字,就将该值设置为那个有符号的数字 即 我知道这可以通过循环等方式实现,但我想知道是否有更干净/内置的方法来实现 我知道有点像 arr[arr > 255] = x 这就是我想要的,但我想按列而不是整个数组来做。作为奖励,这可能是一种执行绝对值的方法,而不必对正数和负数执行两个单独的操作。尝试在您的numpy数组上调用clip: import numpy as np values = np.array([-3,-2,-1,0,1,2,3]) values.c

不管怎样,只要绝对值大于一个数字,就将该值设置为那个有符号的数字

我知道这可以通过循环等方式实现,但我想知道是否有更干净/内置的方法来实现

我知道有点像

arr[arr > 255] = x

这就是我想要的,但我想按列而不是整个数组来做。作为奖励,这可能是一种执行绝对值的方法,而不必对正数和负数执行两个单独的操作。

尝试在您的numpy数组上调用clip:

import numpy as np
values = np.array([-3,-2,-1,0,1,2,3])
values.clip(-2,2)

Out[292]:
array([-2, -2, -1,  0,  1,  2,  2])

尝试在numpy阵列上调用clip:

import numpy as np
values = np.array([-3,-2,-1,0,1,2,3])
values.clip(-2,2)

Out[292]:
array([-2, -2, -1,  0,  1,  2,  2])

scient1st的答案是好的,但它并不能让你一直做到这一点。坦率地说,这有点像RTFM的情况。但是,如果您第一次尝试时没有摸索,那是可以原谅的,因为它们是密集的,如果您来自更传统的编程环境,那么数据模型将是陌生的

您必须在要剪裁的列上使用
np.clip
,如下所示:

x[:,2] = np.clip(x[:,2], 0, 255)
这将
np.clip
应用于数组的第二列,“切片”所有行,然后将其重新指定给第二列。
是Python语法,意思是“给我一个可索引序列的所有元素”

更一般地说,您可以使用以相同方式发现的布尔子集索引,方法是跨行切片并选择所需的列:

x[x[:,2] > 255, 2] = -1

scient1st的答案是好的,但它并不能让你一直做到这一点。坦率地说,这有点像RTFM的情况。但是,如果您第一次尝试时没有摸索,那是可以原谅的,因为它们是密集的,如果您来自更传统的编程环境,那么数据模型将是陌生的

您必须在要剪裁的列上使用
np.clip
,如下所示:

x[:,2] = np.clip(x[:,2], 0, 255)
这将
np.clip
应用于数组的第二列,“切片”所有行,然后将其重新指定给第二列。
是Python语法,意思是“给我一个可索引序列的所有元素”

更一般地说,您可以使用以相同方式发现的布尔子集索引,方法是跨行切片并选择所需的列:

x[x[:,2] > 255, 2] = -1

也许有点晚了,但我认为这是一个不错的选择:

import numpy as np

values = np.array([-3,-2,-1,0,1,2,3])
values = np.clip(values,-2,2)

也许有点晚了,但我认为这是一个不错的选择:

import numpy as np

values = np.array([-3,-2,-1,0,1,2,3])
values = np.clip(values,-2,2)