Python 基于多个逻辑条件删除数值矩阵行
我有以下数据集: 我想删除第一象限和第三象限的数据 有什么建议吗 这是我正在使用的代码:Python 基于多个逻辑条件删除数值矩阵行,python,numpy,Python,Numpy,我有以下数据集: 我想删除第一象限和第三象限的数据 有什么建议吗 这是我正在使用的代码: def circGuass(N,Mean,VAR): dimension = len(Mean) a = np.array(Mean) p = np.random.randn(dimension,N) h = np.tile(a, (2, N//2)) x = math.sqrt(Var) * p + h return x import sys import math import numpy as np
def circGuass(N,Mean,VAR):
dimension = len(Mean)
a = np.array(Mean)
p = np.random.randn(dimension,N)
h = np.tile(a, (2, N//2))
x = math.sqrt(Var) * p + h
return x
import sys
import math
import numpy as np
import matplotlib.pyplot as plt
M1 = 0
Var = 1
N = 500
Mean = [M1, M1]
X = circGuass(N, Mean, Var)
rowonex= X[0]
rowtwox = X[1]
plt.scatter(rowonex,rowtwox , color='blue', marker='+')
plt.show()
我试图按照下面的代码删除数据,但没有成功
X = X[np.logical_not(np.logical_and(data[:,0] > value, X[:,0] < value))]
部分问题在于散点图会将每个点成对绘制。这意味着,如果要删除点,必须删除X[0]中的值以及相应索引X[1]处的值 这是你可以利用熊猫的东西。幸运的是,熊猫是建立在numpy之上的,并且非常高兴地处理numpy阵列 因为第一个和第三个象限中的点相乘得到负数,第二个和第四个象限中的点相乘得到正数,所以我们可以将这两列相乘来决定要保留哪些点。然后我们只从否定答案中选取一部分 因此,您可以尝试以下解决方案: 作为pd进口熊猫 df=pd.DataFrameX.T转换以便于打印
df=df[df[0]*df[1]您尝试了该功能是什么意思?如果您提供了一些代码和数据,无论是否有效,都会更容易帮助您。我添加了代码!