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)