任何人都可以指导我到numpy手册的部分,我可以获得函数来完成均方根计算...(我知道这可以使用np.mean和np.abs完成..不是内置的...如果没有原因??只是好奇..没有进攻)
任何人都可以解释矩阵和数组的复杂性(仅在以下情况):
U是矩阵(T-by-N,或者说是T cross N),Ue是另一个矩阵(T-by-N)我定义k为numpy数组
U[ind,:] 仍然是矩阵
以下列方式
k = np.array(U[ind,:])
当我打印k或输入kipython时
它显示以下内容
K = array ([[2,.3 .....
......
9]])
Run Code Online (Sandbox Code Playgroud)
你会看到双方括号(这使我觉得它是多暗的),它给它的形状=(1,N)
但我不能将它分配给以这种方式定义的数组
l = np.zeros(N)
shape = (,N) or perhaps (N,) something like that
l[:] = k[:]
error:
matrix dimensions incompatible
Run Code Online (Sandbox Code Playgroud)
有没有办法完成我打算做的矢量分配...请不要告诉我这样做l = k(这会失败目的......我在程序中得到不同的错误......我知道原因..如果你需要我可以附上这段代码)
写一个循环是愚蠢的方式..我暂时使用...
我希望我能够解释......我面临的问题......
问候 ...
dep*_*ted 67
对于RMS,我认为这是最清楚的:
from numpy import mean, sqrt, square, arange
a = arange(10) # For example
rms = sqrt(mean(square(a)))
Run Code Online (Sandbox Code Playgroud)
代码读起来就像你说的那样:"root-mean-square".
小智 9
对于RMS,在最快的表情我已经找到了小x.size(〜1024)和真正的x是:
def rms(x):
return np.sqrt(x.dot(x)/x.size)
Run Code Online (Sandbox Code Playgroud)
这似乎是linalg.norm版本的两倍(ipython%timeit在一台非常旧的笔记本电脑上).
如果您希望更复杂地处理复杂数组,那么这也可以工作:
def rms(x):
return np.sqrt(np.vdot(x, x)/x.size)
Run Code Online (Sandbox Code Playgroud)
但是,此版本几乎与版本一样慢norm,仅适用于平面阵列.
对于RMS,怎么样
norm(V)/sqrt(V.size)
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它没有内置.我喜欢
def rms(x, axis=None):
return sqrt(mean(x**2, axis=axis))
Run Code Online (Sandbox Code Playgroud)
如果您的数据中有nans,则可以执行此操作
def nanrms(x, axis=None):
return sqrt(nanmean(x**2, axis=axis))
Run Code Online (Sandbox Code Playgroud)
试试这个:
U = np.zeros((N,N))
ind = 1
k = np.zeros(N)
k[:] = U[ind,:]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68136 次 |
| 最近记录: |