我有一个由每个波段内的几个数字组成的3D阵列.是否有一个函数返回数组符合MULTIPLE条件的索引位置?
我尝试了以下方法:
index_pos = numpy.where(
array[:,:,0]==10 and array[:,:,1]==15 and array[:,:,2]==30)
Run Code Online (Sandbox Code Playgroud)
它返回错误:
ValueError: The truth value of an array with more than one element is ambiguous.
Use a.any() or a.all()
Run Code Online (Sandbox Code Playgroud) 在Mac OS X上安装PIL时,我已经阅读了关于臭名昭着的_imaging C模块错误的其他帖子,并且在任何地方都没有提供任何解决方案,包括PIL常见问题解答,已经证明是有帮助的.
我从源代码新安装了最新版本的libjpeg和zlib.我已经在每个中编辑了Makefile,以便在32位版本的LD_FLAGS变量中包含选项-arch i386.PIL安装没有任何问题,打印到终端的安装摘要说JPEG,TIFF和PNG支持都可以.之后我尝试自我测试:
new-host:Imaging-1.1.7 ely$ python selftest.py
*** The _imaging C module is not installed
Run Code Online (Sandbox Code Playgroud)
出于各种原因常见这种情况.深入探讨,在这里我尝试直接在python中导入_imaging.
new-host:Imaging-1.1.7 ely$ python
ActivePython 2.7.1.4 (ActiveState Software Inc.) based on
Python 2.7.1 (r271:86832, Feb 7 2011, 11:33:10)
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import PIL
>>> import _imaging
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PIL/_imaging.so, 2): Symbol not found: _jpeg_resync_to_restart
Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PIL/_imaging.so …Run Code Online (Sandbox Code Playgroud) 我想开始学习更多关于使用SWIG和其他方法来连接Python和C++的知识.首先,我想编译另一篇文章中提到的这个简单程序:
#include <Python.h>
int main()
{
Py_Initialize();
PyRun_SimpleString ("import sys; sys.path.insert(0, '/home/ely/Desktop/Python/C-Python/')");
PyObject* pModule = NULL;
PyObject* pFunc = NULL;
pModule = PyImport_ImportModule("hello");
if(pModule == NULL){
printf("Error importing module.");
exit(-1);
}
pFunc = PyObject_GetAttrString(pModule, "Hello");
PyEval_CallObject(pFunc, NULL);
Py_Finalize();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
文件"hello.py"只包含内容:
def Hello():
print "Hello world!"
Run Code Online (Sandbox Code Playgroud)
注意:我已经安装了python2.7-dev和python-dev以及libboost-python-dev.但是当我去编译代码时,我得到错误,我认为是由于错误地链接到Python库.
ely@AMDESK:~/Desktop/Python/C-Python$ gcc -I/usr/include/python2.7 test.cpp /tmp/ccVnzwDp.o: In function `main':
test.cpp:(.text+0x9): undefined reference to `Py_Initialize'
test.cpp:(.text+0x23): undefined reference to `PyImport_ImportModule'
test.cpp:(.text+0x58): undefined reference to `PyObject_GetAttrString'
test.cpp:(.text+0x72): undefined reference to `PyEval_CallObjectWithKeywords'
test.cpp:(.text+0x77): …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写自己的Python代码来计算一个和两个尾部独立t检验的t统计量和p值.我可以使用正态近似,但目前我正在尝试使用t分布.我在测试数据上匹配SciPy统计库的结果时没有成功.我可以用一双新鲜的眼睛看看我是否只是在某个地方犯了一个愚蠢的错误.
注意,这是交叉验证的交叉发布,因为它在那里已经有一段时间没有响应,所以我认为获得一些软件开发人员的意见也不会有什么坏处.我试图了解我正在使用的算法是否存在错误,这应该会重现SciPy的结果.这是一个简单的算法,所以令人费解的是为什么我找不到错误.
我的代码:
import numpy as np
import scipy.stats as st
def compute_t_stat(pop1,pop2):
num1 = pop1.shape[0]; num2 = pop2.shape[0];
# The formula for t-stat when population variances differ.
t_stat = (np.mean(pop1) - np.mean(pop2))/np.sqrt( np.var(pop1)/num1 + np.var(pop2)/num2 )
# ADDED: The Welch-Satterthwaite degrees of freedom.
df = ((np.var(pop1)/num1 + np.var(pop2)/num2)**(2.0))/( (np.var(pop1)/num1)**(2.0)/(num1-1) + (np.var(pop2)/num2)**(2.0)/(num2-1) )
# Am I computing this wrong?
# It should just come from the CDF like this, right?
# The extra parameter is the degrees of …Run Code Online (Sandbox Code Playgroud) 我正在检索一些Web数据,解析它,并将输出作为Pandas DataFrame存储到HDF5文件中.在我写入DataFrameH5文件之前,我添加了自己的描述字符串来注释一些关于数据来自何处以及解析时是否出错的元数据.
In [1]: my_data_frame.desc = "Some string about the data"
In [2]: my_data_frame.desc
Out[1]: "Some string about the data"
In [3]: print type(my_data_frame)
<class 'pandas.core.frame.DataFrame'>
Run Code Online (Sandbox Code Playgroud)
但是,加载相同的数据后pandas.io.pytables.HDFStore(),我添加的desc属性丢失,我得到错误:AttributeError: 'DataFrame' object has no attribute 'desc'好像我从未添加过这个新属性.
如何将我的元数据描述作为DataFrame对象的额外属性保留?(或者是否存在一些我可以为我的元数据目的而劫持的DataFrame现有的,已识别的属性?)
假设我有一个分支 ,demos它的存在是为了针对master. 我希望对demo分支的提交能够非常频繁地 ping 每个人,通常是作为拉取请求的一部分。
也就是说,我创建了分支demos和分支的初始提交,然后从它发出拉取请求。我想将它合并到master但同时保持拉取请求处于打开状态,以便随着新提交的推送,它们只会在同一个拉取请求上变得更多提交。
这似乎并不容易实现——一旦我手动从demosinto合并master,它会自动“关闭”github 上的拉取请求。但是现在我想向同一个demos分支添加更多更改,并提交和推送,只需简单地将所有关心的人demos作为同一个拉取请求的一部分进行ping 。
既然做到这一点并不容易,这让我觉得这是错误的。有时做简单的事情是错误的git(比如使用pull),但规则通常是,如果你不顾自己的方式去做一些git自然不会做的事情,那么你可能会错误地使用它。
我想以git社区和最佳实践认为好的方式处理这个案例。但与此同时,它似乎是一个非常明显的用例:拉取请求提醒其他人从分支中获取更改,但不考虑合并后的请求“完成”。一个持续的拉取请求。
我可以一直生成一个新的拉取请求,但是它并没有将不同的demos提交在逻辑上连接在一起,就其在 github 上的显示方式和提醒人们的方式而言。在提交级别,对 的更改demos彼此不同,即使来自不同的作者也可能是非常不同的事情。但是在拉取请求级别,我希望它看起来像“任何时候任何人都demos可以通过这个拉取请求来推动它”。
该工作流程的不足之处是什么,为什么从 git 中的 PR 合并时它不是一个选项?
我正在尝试使用Ubuntu 14.04在Postgres 9.5的平台上编译一些C扩展.
在我的例子中,我想编写我的C代码并首先将其编译为独立的可执行文件(如下面的Makefile中所示).这是因为我还使用NumPy API并编写将Postgres ArrayType数组转换为NumPy PyArray对象的函数,然后使用一些NumPy数组函数.获取正确的细节,正确释放NpyIter对象等等是非常棘手的,所以我绝对需要编译,运行,观察错误并测试所有内容,然后在最后部分详细说明库的构建方式我CREATE EXTENSION在Postgres中说的最后部分.
在编译时,我得到了几个未定义的引用问题,例如:
tmp.c:(.text+0x2d6): undefined reference to `get_typlenbyvalalign'
tmp.c:(.text+0x346): undefined reference to `deconstruct_array'
tmp.c:(.text+0x41f): undefined reference to `DatumGetFloat8'
tmp.c:(.text+0x4ae): undefined reference to `pfree'
tmp.c:(.text+0x4ba): undefined reference to `pfree'
Run Code Online (Sandbox Code Playgroud)
这些是来自Postgres C API的服务器端函数,但是有很多谷歌搜索和大量的强大的pgxs我无法弄清楚如何获取我无法链接的后端Postgres库的名称或路径.
几乎所有的搜索都提到了libpq,但是这些函数没有在客户端API库中定义,所以我正在寻找其他东西.
作为参考,这是我目前正在使用的Makefile.包括库目录pg_config --libdir也必须是不正确的,因为它不会导致未定义的引用错误的任何更改.
INCLUDEDIRS := -I.
INCLUDEDIRS += -I/usr/include/python2.7
INCLUDEDIRS += -I/home/username/anaconda/lib/python2.7/site-packages/numpy/core/include
INCLUDEDIRS += -I$(shell pg_config --includedir-server)
INCLUDEDIRS += -I$(shell pg_config --includedir)
LIBS := -L$(shell pg_config --libdir) …Run Code Online (Sandbox Code Playgroud) 有没有在Python OpenCV中使用HOGDescriptor功能的有用文档?我已经阅读了C++文档,但Python版本的功能不同,我无法通过修补来解决它.
最具体地说,我在Python中寻找一个OpenCV命令,它将图像和像素位置作为输入(可能还有一些关于检测窗口大小的参数)然后只返回一个包含HOG特征向量的Python数组(即列表或NumPy数组等,其中列表的第j个元素是来自定向梯度的直方图的第j个直方图分量.
我的目标是将这些直方图提供给scikits.learn SVM管道(所以我可以避免OpenCV SVM培训),但要做到这一点,我需要实际的特征向量本身,而不是那些OpenCV出现的HOG处理链管道的东西使用.
HOG代码的任何其他Python实现也会起作用.我需要一些合理有效的东西,但要与我自己编写的另一个代码库进行比较.
我在尝试使用a lambda或functools.partial从现有函数创建具有绑定位置参数的新函数时遇到了很多困惑.
我想做这样的事情(行为不符合要求):
def addFunction(self, name, in_function, secondary_args=None, secondary_kwargs=None):
# Assign the function with optional args based on whether any
# optional args are not None
if secondary_args is not None and secondary_kwargs is not None:
func = lambda x: in_function(x, *secondary_args, **secondary_kwargs)
elif secondary_args is None and secondary_kwargs is not None:
func = lambda x: in_function(x, **secondary_kwargs)
elif secondary_args is not None and secondary_kwargs is None:
func = lambda x: in_function(x, *secondary_args)
else:
func = in_function …Run Code Online (Sandbox Code Playgroud) 在基本的 Postgres 函数教程中,有一个带有OUT如下参数的示例:
create or replace function hi_lo(a numeric,
b numeric,
c numeric,
OUT hi numeric,
OUT lo numeric)
as $$
begin
hi := greatest(a, b, c);
lo := least(a, b, c);
end; $$
language plpgsql;
Run Code Online (Sandbox Code Playgroud)
然后结果看起来像
select hi_lo(2, 3, 4);
-- returns one column, "hi_lo" with value "(4, 2)".
select * from hi_lo(2, 3, 4);
-- returns two columns, "hi" / 4 and "lo" / 2.
Run Code Online (Sandbox Code Playgroud)
但是,假设您想要对执行联接的列执行该函数,并且您无权修改该函数或使用替代函数?例如,使用一些玩具数据:
select hi_lo(a.actor_id, length(a.name), ma.movie_id)
from
actors a
join
movies_actors ma …Run Code Online (Sandbox Code Playgroud)