Python NumPy内联二维数组操作

Python NumPy内联二维数组操作,python,numpy,Python,Numpy,在numpy中,如何在一条生产线中执行以下操作 medians = np.median(x, axis=0) for i in range(0, len(x)): # transforming input data to binary values for j in range(0, len(x[i])): x[i][j] = 1 if x[i][j] <= medians[j] else 2 它所做的是根据该维度数据的中值将该特征向量转换为二进制值。使用广播:

在numpy中,如何在一条生产线中执行以下操作

medians = np.median(x, axis=0)

for i in range(0, len(x)): # transforming input data to binary values
    for j in range(0, len(x[i])):
        x[i][j] = 1 if x[i][j] <= medians[j] else 2
它所做的是根据该维度数据的中值将该特征向量转换为二进制值。

使用广播:

x = (x <= np.median(x, axis=0))
更普遍的做法是:

x = (x <= np.median(x, axis=<whatever>, keepdims=True))

你有两个非常不同的问题,你应该考虑分开问。当然,所以我会问一个我真正关心的。我很高兴这是你选择的一个。在numpy中,你为这么简单的事情所做的一切都是可以的,但是效率很难被普遍证明。不得不说,出色的响应时间和清晰性。很高兴看到有人自称是新手。谢谢:我说我是numpy的初学者,不是一般的初学者。你也可以加1来获得原始数据的1和2。如果你想要1和2中的数据,这将返回一个2D布尔数组。@Ashkan。更新
x = (x <= np.median(x, axis=<whatever>, keepdims=True))
x = ... + 1