Python中计算向量的最快方法

Python中计算向量的最快方法,python,pandas,Python,Pandas,我有以下内容(使用Python的熊猫): y:n乘以1数据帧 x:n×k数据帧 θ:k乘以1数据帧 上述数据帧中的每个元素都包含一个实数 我需要一个数据帧w,其中w=y'x('表示转置),但w只包含y按元素乘以(x*theta)小于1的观测值。换句话说,w的维数最多为n×k,如果有一些观测值不符合标准,则行数将减少 获取w的最快方法是什么(时间方面)?使用.values访问底层numpy数组 Y = y.values X = x.values Th = theta.values W = Y.T

我有以下内容(使用Python的熊猫):

y:n乘以1数据帧

x:n×k数据帧

θ:k乘以1数据帧

上述数据帧中的每个元素都包含一个实数

我需要一个数据帧w,其中w=y'x('表示转置),但w只包含y按元素乘以(x*theta)小于1的观测值。换句话说,w的维数最多为n×k,如果有一些观测值不符合标准,则行数将减少


获取w的最快方法是什么(时间方面)?

使用
.values
访问底层numpy数组

Y = y.values
X = x.values
Th = theta.values

W = Y.T.dot(X)

mask = Y * X.dot(Th) < 1

w = pd.DataFrame(W[mask], y.index[mask])
Y=Y.value
X=X.0个值
Th=θ值
W=Y.T.点(X)
遮罩=Y*X点(Th)<1
w=pd.DataFrame(w[mask],y.index[mask])

是否有理由必须使用pandas数据帧而不是np.matrix执行此操作?因为我用pandas.read\u csv加载了它。实际上我想问的是,使用np.matrix或pandas数据帧会更快吗?在大多数情况下是的。我目前想不出任何边缘案例的答案是否定的,但可能有一两个。您可以使用np.loadtxt加载输入,然后将np.ndarray转换为np.matrix,或者将df.values转换为np.matrix。