正在寻找名称以某些子字符串开头的预测变量,找不到任何类似的函数.
所以我想使用isin()方法df.query(),id在列表中选择行:id_list.之前曾问过类似的问题,但他们使用了典型的df[df['id'].isin(id_list)]方法.我想知道是否有一种方法可以使用df.query().
df = pd.DataFrame({'a': list('aabbccddeeff'), 'b': list('aaaabbbbcccc'),
'c': np.random.randint(5, size=12),
'd': np.random.randint(9, size=12)})
id_list = ["a", "b", "c"]
Run Code Online (Sandbox Code Playgroud)
这会产生错误
df.query('a == id_list')
Run Code Online (Sandbox Code Playgroud) 我得到了两张图片,显示了相同的内容:2D高斯形斑点.我把这两个16位的png文件称为"left.png"和"right.png".但是,通过稍微不同的光学设置获得它们,相应的斑点(物理上相同)出现在略微不同的位置.意味着右边以非线性方式略微拉伸,扭曲或左右.因此,我希望从左到右进行转换.
因此,对于左侧的每个像素,其x和y坐标,我想要一个函数,给出位移矢量的分量,指向右侧的相应像素.
在前一种方法中,我试图获得相应斑点的位置以获得相对距离deltaX和deltaY.然后我将这些距离拟合到taylor扩展到T(x,y)的二阶,给出了左边每个像素(x,y)的位移矢量的x和y分量,指向相应的像素(x',y')在右边.
为了得到更一般的结果,我想使用归一化的互相关.为此,我将左边的每个像素值与右边的相应像素值相乘,并将这些乘积相加.我正在寻找的转换应该连接最大化总和的像素.因此,当总和最大化时,我知道我将相应的像素相乘.
我真的尝试了很多,但没有管理.我的问题是,如果你们中的某个人有想法或做过类似的事情.
import numpy as np
import Image
left = np.array(Image.open('left.png'))
right = np.array(Image.open('right.png'))
# for normalization (http://en.wikipedia.org/wiki/Cross-correlation#Normalized_cross-correlation)
left = (left - left.mean()) / left.std()
right = (right - right.mean()) / right.std()
Run Code Online (Sandbox Code Playgroud)
如果我能更清楚地说明这个问题,请告诉我.我仍然需要查看如何使用乳胶发布问题.
非常感谢您的投入.

[left.png] http://i.stack.imgur.com/oSTER.png [right.png] http://i.stack.imgur.com/Njahj.png
我担心,在大多数情况下,16位图像看起来只是黑色(至少在我使用的系统上):(但当然有数据存在.
我试着澄清我的问题.我正在寻找一个矢量场,其位移矢量从left.png中的每个像素指向right.png中的相应像素.我的问题是,我不确定我的约束.
import numpy as np
import Image
left = np.array(Image.open('left.png'))
right = np.array(Image.open('right.png'))
# for normalization (http://en.wikipedia.org/wiki/Cross-correlation#Normalized_cross-correlation)
left = (left - left.mean()) / left.std()
right = (right - right.mean()) / right.std()
Run Code Online (Sandbox Code Playgroud)
其中向量r(分量x和y)指向left.png中的像素,向量r-prime(分量x-prime和y-prime)指向right.png中的对应像素.每个r都有一个位移矢量.
我之前做的是,我发现了矢量场d的手动组件并将它们拟合到第二度的多项式:
import numpy …Run Code Online (Sandbox Code Playgroud) 我在Windows 7 64位版本上安装了Anaconda 64 python 2.7.安装后,anaconda提示符可以启动没有问题.但每当我重新启动/关闭并重新启动笔记本电脑时,anaconda提示符将显示以下错误消息,并且一些python软件包在jupyter笔记本中加载有问题.
Deactivating environment "C:\Users\user\Anaconda2"...
Activating environment "C:\Users\user\Anaconda2"...
The input line is too long.
"PATH_NO_SCRIPTS=C:\Users\user\Anaconda2;;C:\Users\user\Anaconda2\Lib
rary\bin;C:\Python27\;C:\Python27\Scripts;c:\Rtools\bin;c:\Rtools\gcc-4.6.3\bin;
C:\ProgramData\Oracle\Java\javapath;%COSMOSM%;C:\Program Files\Lenovo Fingerprin
t Reader\;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS
Client\;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP
\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program File
s (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Intel\Intel(R) Man
agement Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine
Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Component
s\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\
Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon
\;C:\Program Files\Sony\VAIO Improvement\;C:\Program Files (x86)\Sony\VAIO Start
up Setting Tool;c:\Program Files (x86)\Common Files\Roxio Shared\OEM\DLLShared\;
c:\Program Files …Run Code Online (Sandbox Code Playgroud) 一直在寻找,但到目前为止没有运气.
这是数据框.
> test = data.frame(x = c(1,1,2,2,3,3), y = c('a','b','c','d','e','f'))
> test
x y
1 1 a
2 1 b
3 2 c
4 2 d
5 3 e
6 3 f
Run Code Online (Sandbox Code Playgroud)
正在寻找一种方法来聚合,使得具有相同x值的y被形成为列表或向量.
就像是
x y
1 1 a,b
2 2 c,d
3 3 e,f
Run Code Online (Sandbox Code Playgroud)
尝试'c'但结果不是预期的结果
> aggregate(y~x, data = test, FUN = 'c')
x y.1 y.2
1 1 1 2
2 2 3 4
3 3 5 6
Run Code Online (Sandbox Code Playgroud)
"list"似乎有效,但它将字符转换为因子.
> ss = aggregate(y~x, data = test, FUN = …Run Code Online (Sandbox Code Playgroud)