小编ap2*_*p21的帖子

实现 fftshift 和 ifftshift 的正确顺序(在 python 中)

我想对一个函数进行傅里叶变换psi(x),将其乘以 k 空间函数exp(-kx^2-ky^2),然后将乘积逆傅里叶变换回 x 空间。

但是我的 x 空间和 k 空间网格位于中心,并且我知道我需要fftshift并ifftshift正确实现我的 k 空间乘法。但我不明白它们是如何工作的,所以我不知道按照什么顺序来实现它们。有人可以告诉我我在这里做得是否正确吗?

import scipy.fftpack as spfft
import numpy as np

#Create a centred k-space grid]

kxmax, kymax = 10,10
kxgrid = np.linspace(-kxmax/2, kxmax/2, NX)
kygrid = np.linspace(-kymax/2, kymax/2, NY)
KX, KY = np.meshgrid(kxgrid, kygrid, indexing='xy')

psi = spfft.ifft2(spfft.fftshift(np.exp(-(KX**2 + KY**2)) * spfft.fftshift(spfft.fft2(psi))))
Run Code Online (Sandbox Code Playgroud)

python fft scipy

8
推荐指数
1
解决办法
7903
查看次数

使 pandas plot() 显示 xlabel 和 xvalues

我正在使用标准pandas.df.plot()函数在数据框中绘制两列。出于某种原因,x 轴值和 xlabel 不可见!似乎也没有选项可以在函数中打开它们(参见https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.html)。

有人知道发生了什么,以及如何纠正它?

import matplotlib.cm as cm
import pandas as pd

ax1 = df.plot.scatter(x='t', y='hlReference', c='STEP_STRENGTH', cmap=cm.autumn);
Run Code Online (Sandbox Code Playgroud)

给出了这个: xvalues 和标签丢失

python matplotlib pandas

7
推荐指数
2
解决办法
3467
查看次数

SciPy优化:Newton-CG与BFGS对比L-BFGS

我正在使用Scipy做一个优化问题,我正在采用一个顶点和大小的NNxNN连接的扁平网络,连接它的两侧(即,使其周期性),并最小化能量函数,以便它卷曲形成一个圆筒.(见下面的链接.)

因为我具备的功能energy(xyz-position)和它的坡度,我决定用在SciPy的手册推荐的三种方法- ,,Newton-CG - ,并比较他们是如何进行的.BFGSL-BFGS-B

我所说的优化功能如下,我只是更换'Newton-CG'与'BFGS'和'L-BFGS-B'根据情况:

from scipy.optimize import minimize
res = minimize(energy, xyzInit, method='Newton-CG', jac = energy_der,  options={'disp': True}) 
Run Code Online (Sandbox Code Playgroud)

我发现了以下一般行为(我给出的输出数据NN=9,对应于一个3*9^2=243参数空间) -

  1. BFGS系统地未能找到正确的最小值(对于低值NN),并且根本没有收敛到大的值NN.有关最终结果,请参阅https://plot.ly/~apal90/162/.

     NN=9
     Method: BFGS
     Warning: Desired error not necessarily achieved due to precision loss.
     Current function value: 204.465912
     Iterations: 1239
     Function evaluations: 1520
     Gradient evaluations: 1508
     Time taken for minimisation: 340.728140116
    
    Run Code Online (Sandbox Code Playgroud)
  2. Newton-CG发现小的正确的最小值NN(<= 8),但是从NN …

python optimization scipy newtons-method

6
推荐指数
1
解决办法
5716
查看次数

向Plotly Scatter3d()图添加特定线

我有一个Plotly Scatter3d()图,我想在其中一些之间画线。从物理上讲,我有一个网络,其中有一些节点通过键连接,我想绘制这些键。我该怎么办?

Scatter3d()带有一个mode='lines+markers'仅使它成为点和线散点图的选项,而不是默认的仅点图。那不是我想要的。我想提供一个xyz坐标对列表,并且我想在末尾收集行。

这是我绘制简单Scatter3d()图的功能:

def Splot3dPlotly(xyz):
'''
3D scatter plot using Plotly.

:param xyz: (NPx3) array of xyz positions
:return: A Plotly figure that can now be plotted as usual.
'''
xyz = np.reshape(xyz, (int(xyz.size/3), 3))
NN = int(sqrt(xyz.shape[0]))

trace1 = go.Scatter3d(
    x=xyz[:,0],
    y=xyz[:,1],
    z=xyz[:,2],
    mode = 'markers', # 'lines+markers',
    marker=dict(color=range(NN*NN), colorscale='Portland')
            )

data = [trace1]
layout = go.Layout(
    margin=dict(
        l=0,
        r=0,
        b=0,
        t=0
    )
)

fig = go.Figure(data=data, layout=layout)
return fig
Run Code Online (Sandbox Code Playgroud)

python plot plotly

5
推荐指数
1
解决办法
1455
查看次数

Python:'in'条件运算符的元素实现

所以,我有两个清单:

x =[170 169 168 167 166 165 183 201 219 237 255 274 293 312 331 350]
y =[201,168]
Run Code Online (Sandbox Code Playgroud)

我想写一个条件if语句,只有当所有内容y都在时才是真的x.我该怎么做呢?

EG - assert(y[0] in x)和assert(y[a] in x)两个给True,但assert(y in x)给人False.同样,assert( any(y) in x )也会引发错误.

python conditional if-statement elementwise-operations

0
推荐指数
1
解决办法
88
查看次数