jjzjj

python - 逐元素乘以 2D NumPy 数组并求和

我想知道是否有更快的方法/专用的NumPy函数来执行二维NumPy数组的逐元素乘法,然后对所有元素求和。我目前使用np.sum(np.multiply(A,B)),其中A、B是等维mxn的NumPy数组。 最佳答案 您可以使用np.tensordot-np.tensordot(A,B,axes=((0,1),(0,1)))另一种方式np.dot压平输入后-A.ravel().dot(B.ravel())另一个np.einsum-np.einsum('ij,ij',A,B)sample运行-In[14]:m,n=4,5In[15]:A

python - 通过 np.char.find 比较 pandas 数据帧的两列给出 TypeError : string operation on non-string array

我想比较两个系列的字符串,看看一个是否包含另一个元素。我首先尝试使用apply,但它很慢:cols=['s1','s2']list_of_series=[pd.Series(['one','sdf'],index=cols),pd.Series(['two','xytwo'],index=cols)]df=pd.DataFrame(list_of_series,columns=cols)dfs1s20onesdf1twoxytwodf.apply(lambdarow:row['s1']inrow['s2'],axis=1)0False1Truedtype:bool它似乎适用于以下代码:

python - python中的图像偏度和峰度

是否有python包可以为我提供一种计算图像的偏斜度和峰度的方法?任何例子都会很棒。非常感谢。 最佳答案 我假设您有一张显示某种峰的图像,并且您有兴趣获得该峰在x和y方向上的偏度和峰度(可能还有标准差和质心)。我也在想这个问题。奇怪的是,我没有发现任何python图像分析包都实现了这一点。OpenCV有一个momentsfunction,我们应该能够从中得到偏度,但是力矩只有三阶,我们需要四阶才能得到峰度。为了使事情变得更容易和更快,我认为在x和y方向上对图像进行投影并从这些投影中找到统计数据在数学上等同于使用完整图像找到统计数据。

python - n 球坐标系到笛卡尔坐标系

在笛卡尔坐标系和n-sphericalone之间有什么有效的转换方式吗??改造如下:以下是我的代码,但我想摆脱循环:importnumpyasnpimportscipy.sparsedefcoord_transform_n(r,alpha):"""alpha:then-2valuesbetween[0,\pi)andlastonebetween[0,2\pi)"""x=[]foriinrange(alpha.shape[0]):x.append(r*np.prod(np.sin(alpha[0:i]))*np.cos(alpha[i]))returnnp.asarray(x)print

python - 使 np.loadtxt 使用多个可能的分隔符

我有一个读取数据文件的程序,用户可以选择他们想要使用的列。我希望它对输入文件更通用;有时,列可能如下所示:10:34:24.588.2846.121有时它们看起来像这样:103424.588.2846.121我希望程序在两种情况下都将其识别为5列,而不是第一种情况下的5列和第二种情况下的3列。基本上,我希望它能将whitespace识别为分隔符,并将:也识别为分隔符。有没有简单的方法来做到这一点?我知道numpy需要一个定界符命令,但据我所知它只能使用一个。 最佳答案 np.loadtxt(和genfromtxt)接受任何可迭代作为

python - 如何转置 3D np 数组中的每个元素

给定一个3D数组a,我想对其第一个索引中的每个元素调用np.tranpose。例如,给定数组:array([[[1,1,1,1],[1,1,1,1],[1,1,1,1]],[[2,2,2,2],[2,2,2,2],[2,2,2,2]],[[3,3,3,3],[3,3,3,3],[3,3,3,3]])我要:array([[[1,1,1],[1,1,1],[1,1,1],[1,1,1]],[[2,2,2],[2,2,2],[2,2,2],[2,2,2]],[[3,3,3],[3,3,3],[3,3,3],[3,3,3]]])本质上,我想转置数组中的每个元素。我试图reshape它,但找不到

python - np.log() 和 np.diff() 的逆运算是什么?

我在程序中使用了语句dataTrain=np.log(mdataTrain).diff()。我想扭转声明的影响。如何在Python中完成? 最佳答案 反过来将涉及先累加和再取指数。由于pd.Series.diff丢失信息,即系列中的第一个值,您需要存储和重用此数据:np.random.seed(0)s=pd.Series(np.random.random(10))print(s.values)#[0.54881350.715189370.602763380.544883180.42365480.64589411#0.43758721

python - Pandas :np.where 在数据帧上有多个条件

大家好,我找遍了SO和谷歌,找不到任何类似的东西......我有一个数据框x(基本上由一行和300列组成)和另一个具有相同大小但不同数据的数据框y。我想将x修改为0,如果它与y有不同的符号并且x本身不为0,否则保持原样。所以这需要在多个条件下使用np.where。然而,我见过的多个条件示例都使用标量,当我使用相同的语法时,它似乎不起作用(最终将-everything-设置为零,没有错误)。我担心隐藏在某处或其他地方的按引用分配问题(移位后y是x,但据我所知,此代码上方没有上游问题)有什么想法吗?我要调试的代码是:tradesmade[i:i+1]=np.where((sign(x)!=

python - 用三角方法计算傅里叶级数

我尝试根据以下公式实现傅立叶级数函数:...哪里......和...这是我解决问题的方法:importnumpyasnpimportpylabaspy#Define"x"range.x=np.linspace(0,10,1000)#Define"T",i.efunctions'period.T=2L=T/2#"f(x)"functiondefinition.deff(x):returnnp.sin(np.pi*1000*x)#"a"coefficientcalculation.defa(n,L,accuracy=1000):a,b=-L,Ldx=(b-a)/accuracyintegr

python - 在纯 NumPy 中重写 for 循环以减少执行时间

我recentlyaskedabouttryingtooptimiseaPythonloopforascientificapplication,并收到anexcellent,smartwayofrecodingitwithinNumPywhichreducedexecutiontimebyafactorofaround100对我来说!但是,B值的计算实际上嵌套在其他几个循环中,因为它是在规则的位置网格中计算的。是否有类似的智能NumPy重写来缩短此过程的时间?我怀疑这部分的性能提升不会很明显,缺点可能是无法向用户报告计算进度,结果无法写入输出文件直到计算结束,并且可能在一个巨大的步骤中