小编Noa*_*led的帖子

python中的kalman 2d过滤器

我的输入是在跟踪器软件的屏幕上移动的点的2d(x,y)时间序列.我想用卡尔曼滤波器消除一些噪音.有人能指出我为卡尔曼2d滤镜的python代码吗?在scipy cookbook中,我发现只有一个例子:http: //www.scipy.org/Cookbook/KalmanFiltering 我看到OpenCV中有卡尔曼滤波器的实现,但找不到代码示例.谢谢!

python 2d kalman-filter

33
推荐指数
1
解决办法
3万
查看次数

numpy.savetxt在python 3.5中导致格式不匹配错误

我正在尝试使用numpy.savetxt将numpy矩阵(Nx3,float64)保存到txt文件中:

np.savetxt(f, mat, fmt='%.5f', delimiter=' ')
Run Code Online (Sandbox Code Playgroud)

这行在python 2.7中工作,但在python 3.5中,我收到以下错误:

TypeError:数组dtype('float64')和格式说明符('%.5f%.5f%.5f')之间不匹配

当我踩到savetxt代码时,在catch块(numpy.lib.npyio,第1158行)中打印错误(traceback.format_exc()),错误完全不同:

TypeError:write()参数必须是str,而不是bytes

导致异常的代码行如下:

fh.write(asbytes(format % tuple(row) + newline))
Run Code Online (Sandbox Code Playgroud)

我试图删除asbytes,它似乎修复了这个错误.这是一个numpy的错误吗?

formatting numpy python-3.5

25
推荐指数
1
解决办法
4万
查看次数

python中的PLS-DA算法

偏最小二乘(PLS)算法在scikit-learn库中实现,如下所述:http: //scikit-learn.org/0.12/auto_examples/plot_pls.html 在y是二进制向量的情况下,变体正在使用该算法,偏最小二乘判别分析(PLS-DA)算法.sklearn.pls中的PLSRegression模块是否也实现了这种二进制情况?如果没有,我在哪里可以找到它的python实现?在我的二进制文件中,我正在尝试使用PLSRegression:

pls = PLSRegression(n_components=10)
pls.fit(x, y)
x_r, y_r = pls.transform(x, y, copy=True)
Run Code Online (Sandbox Code Playgroud)

在transform函数中,代码在此行中获得异常:

y_scores = np.dot(Yc, self.y_rotations_)
Run Code Online (Sandbox Code Playgroud)

错误消息是"ValueError:矩阵未对齐".Yc是规范化的y向量,self.y_rotations_ = [1.].在拟合函数中,如果原始y是单变量向量(y.shape 1 = 1),则self.y_rotations_ = np.ones(1).

python scikit-learn

10
推荐指数
1
解决办法
9030
查看次数

使用moviepy为电影添加字幕

我尝试按照以下示例操作,如何将字幕添加到影片剪辑:

from moviepy.video.tools.subtitles import SubtitlesClip
from moviepy.video.io.VideoFileClip import VideoFileClip
subs = [((0, 3), 'sub1'),
        ((3, 7), 'sub2'),
        ((9, 11), 'sub3'),
        ((11, 16), 'sub4')]
subtitles = SubtitlesClip(subs)
clip = VideoFileClip(video_fname)
video = movedit.CompositeVideoClip([clip, subtitles])
video.to_videofile(output_video_name)
Run Code Online (Sandbox Code Playgroud)

但是输出的电影原来没有字幕。难道我做错了什么?顺便说一句,subtitles.py不适用于python 3,这行代码

subtitles = [(map(cvsecs, tt),txt) for tt, txt in subtitles]
Run Code Online (Sandbox Code Playgroud)

需要更改为

subtitles = [(list(map(cvsecs, tt),txt)) for tt, txt in subtitles]
Run Code Online (Sandbox Code Playgroud)

编辑

最终,我用困难的方式创建了字幕:

from moviepy import editor
import os.path as op

def annotate(clip, txt, txt_color='red', fontsize=50, font='Xolonium-Bold'):
    """ Writes a text at …
Run Code Online (Sandbox Code Playgroud)

python subtitle moviepy

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

bin 3d指向python中的3d bins

如何将 3d 点放入 3d 箱中?np.digitize 是否有多维版本?我可以为每个维度分别使用 np.digitize ,就像这里。有更好的解决方案吗?谢谢!

python multidimensional-array binning

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

argparse:传递负值时需要一个参数

我试图传递一个参数,它是值列表:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--cb_ticks', required=False, default='')              
args = vars(parser.parse_args())
print(args['cb_ticks'])
Run Code Online (Sandbox Code Playgroud)

对于大多数情况,此代码按预期工作:

  • python test.py --cb_ticks "1" -> 1
  • python test.py --cb_ticks "1,2" -> 1,2
  • python test.py --cb_ticks "-1" -> -1

但是当我尝试传递多个值时,第一个值是负值:

  • python test.py --cb_ticks“-1,2”

我收到以下错误:test.py:

错误:参数 --cb_ticks:需要一个参数

python arguments argparse

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

SVM整数功能

我在机器学习scikit-learn包中使用SVM分类器进行python.我的功能是整数.当我调用fit函数时,我得到用户警告"Scaler假定浮点值为输入,得到int32",SVM返回其预测,我计算混淆矩阵(我有2个类)和预测精度.我试图避免用户警告,所以我将这些功能保存为浮动.事实上,警告消失了,但我得到了一个完全不同的混淆矩阵和预测准确度(令人惊讶的是更不准确)有人知道它为什么会发生吗?什么是可取的,我应该将功能发送为浮点数还是整数?谢谢!

svm scikit-learn

3
推荐指数
1
解决办法
2815
查看次数

如何检查3D点是否在圆柱体内

给定两个3d点和另一个3d点列表,我想检查哪一个在圆柱体内定义为两个点之间的半径为r的三维线.我已经实现了一个数值解决方案,这是不准确和太慢:

def point_in_cylinder(pt1, pt2, points, r, N=100):
    dist = np.linalg.norm(pt1 - pt2)
    ori = (pt2 - pt1) / dist 
    line = np.array([pt1 + ori*t for t in np.linspace(0, dist, N)])
    dists = np.min(cdist(line, points), 0)
    return np.where(dists <= r)[0]
Run Code Online (Sandbox Code Playgroud)

我相信有更好的解决方案......

*****编辑*****

我通过用矩阵乘法替换listcomp(声明行的位置)来加速这个函数:

line = (pt1.reshape(3, 1) + elc_ori.reshape(3, 1) @ np.linspace(0, dist, N).reshape(1, N)).T
Run Code Online (Sandbox Code Playgroud)

python 3d numpy

3
推荐指数
1
解决办法
2323
查看次数