小编hjw*_*ide的帖子

将列表打印为表格数据

我对Python很陌生,现在我正在努力为打印输出很好地格式化我的数据.

我有一个用于两个标题的列表,以及一个应该是表格内容的矩阵.像这样:

teams_list = ["Man Utd", "Man City", "T Hotspur"]
data = np.array([[1, 2, 1],
                 [0, 1, 0],
                 [2, 4, 2]])
Run Code Online (Sandbox Code Playgroud)

请注意,标题名称的长度不一定相同.但是,数据条目都是整数.

现在,我想以表格格式表示这个,如下所示:

            Man Utd   Man City   T Hotspur
  Man Utd         1          0           0
 Man City         1          1           0
T Hotspur         0          1           2
Run Code Online (Sandbox Code Playgroud)

我有预感,必须有一个数据结构,但我找不到它.我已经尝试使用字典和格式化打印,我已尝试使用缩进的for循环,我已尝试打印为字符串.

我确信必须有一个非常简单的方法来做到这一点,但由于缺乏经验,我可能会错过它.

python

314
推荐指数
15
解决办法
51万
查看次数

Python:调整现有数组的大小并填充零

我认为我的问题应该很简单,但我无法在互联网上找到任何帮助.我是Python的新手,所以我可能会遗漏一些非常明显的东西.

我有一个数组,S,就像这样[x x x] (one-dimensional).我现在创建一个对角矩阵,sigmanp.diag(S)-到目前为止,那么好.现在,我想调整这个新的对角线数组的大小,以便我可以将它乘以我拥有的另一个数组.

import numpy as np
...
shape = np.shape((6, 6)) #This will be some pre-determined size
sigma = np.diag(S) #diagonalise the matrix - this works
my_sigma = sigma.resize(shape) #Resize the matrix and fill with zeros - returns "None" - why?
Run Code Online (Sandbox Code Playgroud)

但是,当我打印出内容时my_sigma,我明白了"None".有人可以指出我正确的方向,因为我无法想象这应该是如此复杂.

在此先感谢您的帮助!

卡斯帕

图形:

我有这个:

[x x x]
Run Code Online (Sandbox Code Playgroud)

我要这个:

[x 0 0]
[0 x 0]
[0 0 x]
[0 0 0]
[0 0 0]
[0 0 …
Run Code Online (Sandbox Code Playgroud)

python arrays resize numpy matrix

25
推荐指数
3
解决办法
5万
查看次数

在MySQLWorkbench中更改字体

据我所知,我使用的是最新版本的MySQLWorkbench 5.2,但我根本无法更改字体.这是非常不方便的,因为默认字体非常小而且眼睛很刺耳.外观选项卡具有更改字体的选项,但实际上不能在那里进行更改,因为实际上无法对字段进行编辑.

有没有人知道这方面的方法?这似乎是一个常见的错误,但我无法在任何地方找到解决方案.

mysql configuration fonts mysql-workbench

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

使用matplotlib.pyplot(Python)绘制椭圆

很抱歉,如果这是一个愚蠢的问题,但是有一种简单的方法可以在Python中使用matplotlib.pyplot绘制椭圆吗?我希望有类似matplotlib.pyplot.arrow的东西,但我找不到任何东西.

使用带有draw_artist或类似功能的matplotlib.patches是唯一的方法吗?我希望有一个更简单的方法,但文档没有提供太多帮助.

谢谢你的建议!

python matplotlib ellipse

14
推荐指数
3
解决办法
4万
查看次数

对象跟踪:MATLAB与Python Numpy

我将很快开始最后一年的工程项目,包括对在2D表面上移动的物体的实时跟踪.我的算法将使用特征提取来注册对象.

我正在尝试做一些研究来决定是否应该使用MATLAB或使用Python Numpy(数值Python).我考虑的一些因素:

1.)经验

我在两者方面都有合理的经验,但也许有更多使用Numpy的图像处理经验.但是,我总是发现MATLAB非常直观且易于掌握.

2.)实时能力

我的选择能够支持从外部摄像机实时获取视频数据,这一点非常重要.我发现MATLAB的这个链接显示了如何做到这一点.我确信Python可能也是如此,也许使用OpenCV库?

3.)表现

我听说过,虽然从未使用过,但MATLAB可以轻松地在多个内核之间分离独立的计算.我认为这会非常有用,我不确定Numpy是否也同样简单?

4.)价格

我知道有一个与MATLAB相关的成本,但我将在一所大学工作,因此可以访问完整的MATLAB而不需要任何成本,因此价格不是一个因素.

我非常感谢任何做过类似事情的人的任何意见,以及你的经历.谢谢!

python matlab tracking numpy video-processing

10
推荐指数
3
解决办法
2526
查看次数

计算不同长度的阵列的平均值

当它们可能有不同的长度时,是否可以计算多个阵列的平均值?我正在使用numpy.所以我要说:

numpy.array([[1, 2, 3, 4, 8],    [3, 4, 5, 6, 0]])
numpy.array([[5, 6, 7, 8, 7, 8], [7, 8, 9, 10, 11, 12]])
numpy.array([[1, 2, 3, 4],       [5, 6, 7, 8]])
Run Code Online (Sandbox Code Playgroud)

现在我想计算平均值,但忽略了"缺失"的元素(当然,我不能只是附加零,因为这会弄乱平均值)

有没有办法在不迭代数组的情况下执行此操作?

PS.这些数组都是2-D,但总是具有相同数量的坐标.即第一个数组是5和5,第二个是6和6,第三个是4和4.

一个例子:

np.array([[1, 2],    [3, 4]])
np.array([[1, 2, 3], [3, 4, 5]])
np.array([[7],       [8]])
Run Code Online (Sandbox Code Playgroud)

这必须给

(1+1+7)/3  (2+2)/2   3/1
(3+3+8)/3  (4+4)/2   5/1
Run Code Online (Sandbox Code Playgroud)

并以图形方式:

[1, 2]    [1, 2, 3]    [7]
[3, 4]    [3, 4, 5]    [8]
Run Code Online (Sandbox Code Playgroud)

现在想象一下,这些二维数组放在彼此的顶部,坐标重叠,有助于该坐标的平均值.

python arrays numpy mean

8
推荐指数
2
解决办法
5211
查看次数

OpenCV:跟踪在2D平面中移动的3D对象

我最近一直致力于解决对象跟踪问题.我需要做的是识别和跟踪可能在2D平面上移动的3D对象,即x和y的平移,以及z周围的旋转.要跟踪的对象是预先知道的,并且可以从中提取任何所需信息.还假设照明条件不会发生任何严重变化,并且背景将保持相对静止.要跟踪的对象通常不是单一颜色,因此不能选择按颜色跟踪.

我已经使用背景减法和动态模板匹配成功实现了跟踪多个2D对象的原型.我现在想扩展到跟踪3D对象,但到目前为止,我对我发现/实现的内容感到失望.我将列出我所做的一些尝试,希望有人可以解释一下.

1.)动态模板匹配:我希望用户在视频框架中选择对象,然后在对象周围定义搜索区域.然后在该区域内搜索该对象. 这个片段最初给了我这个想法.不幸的是,这对我来说并不适用,因为物体在旋转时会丢失(将其转回相机).我还尝试在找到对象时不断更新模板,但这会导致模板在目标对象被遮挡时成为另一个(外部)对象.

2.)Lucas-Kanade光流:我使用OpenCV的goodFeaturesToTrack来找到一些跟踪的好点,并尝试使用calcOpticalFlowPyrLK通过多个帧跟踪这些点.但是,这种算法的性能有点令人失望.我将它应用于牛津走廊数据集,但我最初检测到的点很快就会丢失.

3.)SURF:我试图用SURF检测特征,但问题在于很难将其应用于可能因不同视角而有很大差异的3D对象.我希望找到有关cv2的SURF的文档,因为这似乎提供了为SURF Feature提取器提供关键点的功能(可能来自goodFeaturesToTrack).不幸的是,我还没有办法做到这一点.关于SO的问题:OpenCV:从用户定义的关键点提取SURF功能

背景:我有一个固定的摄像头,我在台式电脑上完成所有处理.我在Windows 7上使用OpenCV的Python包装器和Eclipse的PyDev插件.

如果有人可以提出任何其他技术来尝试,甚至一些指针来提高已经提到的技术的性能,我将非常感激.

python opencv tracking computer-vision surf

7
推荐指数
1
解决办法
3552
查看次数

OpenCV:从用户定义的关键点中提取 SURF 特征

我想从我指定的关键点计算 SURF 特征。我正在使用 OpenCV 的 Python 包装器。以下是我尝试使用的代码,但我在任何地方都找不到工作示例。

surf = cv2.SURF()
keypoints, descriptors = surf.detect(np.asarray(image[:,:]),None,useProvidedKeypoints = True)
Run Code Online (Sandbox Code Playgroud)

如何指定此函数要使用的关键点?

类似的未回答的问题: 当 useProvidedKeypoints = true 时,cvExtractSURF 不起作用

文档

python opencv surf

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

从非托管C++创建DLL

我目前有一个用非托管C++编写的控制台应用程序,源代码由一个入口点main和一些其他函数组成.我需要从这段代码创建一个DLL,以便我可以从其他项目中使用它,特别是来自托管C++.(另一个问题:我是否必须为此目的编写一个包装类?)

据我所知,无论是托管/非托管C++还是创建DLL,我都遵循本教程并设法通过仅使用VS2010(无CMake)来启动并运行一个简单的Hello World DLL.

但是,我的这个项目有很多依赖项(例如Point Cloud Library),所以我通常使用CMake生成Visual Studio 2010解决方案,然后构建成可执行文件,如PCL教程中所述.如何使用CMake构建一个将构建到DLL中的VS2010项目?

总结一下我的问题:

  1. 我有一个需要很多依赖项的非托管C++代码项目.
  2. 我想从这段代码创建一个可以从托管C++调用的DLL.

额外信息:Windows 7,Visual Studio 2010 Ultimate,CMake 2.8.10.2

编辑: 我用你的线改变了CMake,它按预期工作.这是我添加到我的头文件后,我是在正确的轨道上?

MyCode.h

#ifdef MyLib_EXPORTS
#define API_DECL __declspec( dllexport )
#else 
#define API_DECL __declspec( dllimport )

#include <iostream>
#include <pcl/...>
etc...

API_DECL void myFirstFunction();
API_DECL void mySecondFunction();
#endif
Run Code Online (Sandbox Code Playgroud)

MyCode.cpp:我没有对源文件进行任何更改,我应该做什么?

c++ dll unmanaged cmake visual-studio-2010

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

OpenMP并行for循环显示性能提升很少

我正在学习如何在C中使用OpenMP,作为HelloWorld练习,我正在编写一个计算素数的程序.然后我将其并行如下:

int numprimes = 0;
#pragma omp parallel for reduction (+:numprimes)
for (i = 1; i <= n; i++)
{
    if (is_prime(i) == true)
        numprimes ++;
}
Run Code Online (Sandbox Code Playgroud)

我使用gcc -g -Wall -fopenmp -o primes primes.c -lm(我正在使用-lmmath.h函数)编译此代码.然后我运行这个代码Intel® Core™2 Duo CPU E8400 @ 3.00GHz × 2,并且正如预期的那样,性能优于串行程序.

然而,当我尝试在功能更强大的机器上运行它时,问题就出现了.(我也尝试手动设置要使用的线程数num_threads,但这并没有改变任何东西.)计算所有素数以便10 000 000给我以下时间(使用time):

8芯机:

real    0m8.230s
user    0m50.425s
sys     0m0.004s
Run Code Online (Sandbox Code Playgroud)

双核机器:

real    0m10.846s
user    0m17.233s
sys     0m0.004s
Run Code Online (Sandbox Code Playgroud)

这种模式继续计算更多的质数,具有更多核心的机器显示出轻微的性能提升,但没有像我期望的那样有更多的核心可用.(我希望核心数量增加4倍,这意味着运行时间减少了近4倍?)

计算素数最多50 000 000: …

c parallel-processing concurrency ubuntu openmp

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

从Managed C++引用非托管C++ DLL

这个问题来自我之前的问题:从非托管C++创建DLL,但您不必阅读它来理解这个新问题.

我现在有一个DLL,其中包含由几个函数组成的非托管C++代码,其中我只导出一个用于外部使用.接下来,我需要在托管C++项目中使用此DLL(使用公共语言运行时支持构建).到目前为止,我已经Additional Include Directories在Visual Studio 2010中设置了对现有非托管项目头文件的引用.

如果我现在尝试添加对DLL文件的引用:MyManagedProject > Properties > Common Properties > Add New Reference > Browse > MyUnmanagedDLL.dll,我收到错误Could not add a reference to file MyUnmanagedDLL.dll because it is neither a .NET assembly nor a registered ActiveX control. 但是,如果我采用前面提到的DLL并将其复制到与托管C++的可执行文件相同的文件夹中,一切正常.

我不确定这是否是正确的方法,因为它似乎是一个hackish解决方案.此外,这意味着每次我更改其源代码时都必须复制DLL.

总结一下我的问题:

  1. 我创建了一个由非托管C++代码组成的DLL,让我们调用它MyUnmanagedDLL.dll.我还为此DLL创建了一个头文件.
  2. 我有一个托管C++项目(CLR),让我们称之为 MyManagedProject.vxproj
  3. 我如何使用MyUnmanagedDLL.dllMyManagedProject.vxproj?有没有正确的方法来引用它,或者我应该将它复制到同一目录MyManagedProject.exe?(这有效,但我不确定它的良好做法......)

额外信息:Windows 7,Visual Studio 2010 Ultimate,CMake 2.8.10.2

c++ dll clr unmanaged visual-studio-2010

2
推荐指数
1
解决办法
8964
查看次数