小编the*_*ker的帖子

使用Matplotlib以非阻塞方式绘图

在过去的几天里,我一直在玩Numpy和matplotlib.我在尝试使matplotlib绘制函数而不阻塞执行时遇到问题.我知道在这里已经有很多线索提出了类似的问题,而且我已经搜索了很多但是没有设法让这项工作成功.

我曾经尝试过使用show(block = False),但我得到的只是一个冻结的窗口.如果我只是调用show(),则会正确绘制结果,但会阻止执行直到窗口关闭.从我读过的其他主题,我怀疑show(block = False)是否有效取决于后端.它是否正确?我的后端是Qt4Agg.你能看看我的代码并告诉我你是否看错了吗?这是我的代码.谢谢你的帮助.

from math import *
from matplotlib import pyplot as plt
print plt.get_backend()



def main():
    x = range(-50, 51, 1)
    for pow in range(1,5):   # plot x^1, x^2, ..., x^4

        y = [Xi**pow for Xi in x]
        print y

        plt.plot(x, y)
        plt.draw()
        #plt.show()             #this plots correctly, but blocks execution.
        plt.show(block=False)   #this creates an empty frozen window.
        _ = raw_input("Press [enter] to continue.")


if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

PS.我忘了说我想在每次绘制内容时更新现有窗口,而不是创建一个新窗口.

python plot matplotlib

106
推荐指数
6
解决办法
10万
查看次数

规范化2D Numpy数组:零均值单位方差

我有一个2D Numpy数组,其中我想将每列归一化为零均值和单位方差.由于我主要习惯于C++,我所使用的方法是使用循环迭代列中的元素并执行必要的操作,然后对所有列重复此操作.我想知道一个pythonic的方法.

class_input_data我的2D数组.我可以得到列的意思是:

column_mean = numpy.sum(class_input_data, axis = 0)/class_input_data.shape[0]
Run Code Online (Sandbox Code Playgroud)

然后我通过以下方法减去所有列的均值:

class_input_data = class_input_data - column_mean
Run Code Online (Sandbox Code Playgroud)

到目前为止,数据应为零均值.但是,价值:

numpy.sum(class_input_data, axis = 0)
Run Code Online (Sandbox Code Playgroud)

不等于0,暗示我在规范化中做错了.By不等于0,我不是指可归因于浮点不准确的非常小的数字.

python numpy

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

重载运算符<on对未被排序使用

我已经重载了少于操作pair<int,int>,因此我可以以特定方式对矢量进行排序.我希望它按照一对中的第一个键按升序排列,如果第一个键相等,那么根据第二个键,我希望它按降序排列.

问题是sort函数似乎没有使用重载<运算符,但如果<在2对上调用,则返回的输出是我所期望的.我附上了一段代码,我用它来测试:

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
bool operator<(pair<int, int> &a, pair<int, int> &b)
{
    if (a.first < b.first) return true;
    else if ((a.first == b.first) && (a.second > b.second)) return true;
    return false;
}

int main() {
    vector<pair<int, int>> test {make_pair(1,10), make_pair(3,4), make_pair(3,8),  make_pair(6, 23), make_pair(1,6)};
    sort(test.begin(), test.end());
    for (int i = 0; i < test.size(); i++)
      cout << test[i].first << " - " << test[i].second << "  "; …
Run Code Online (Sandbox Code Playgroud)

c++ sorting

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

在Python中读取.sph文件

我正在一个项目中,我需要从音频信号中提取梅尔倒谱频率系数(MFCC)。此过程的第一步是将音频文件读入Python。

我拥有的音频文件以.sph格式存储。我找不到直接将这些文件读入Python的方法。我想要采样率,以及一个带有数据的NumPy数组,类似于wav读取的工作方式。

由于我要处理的音频文件很大,因此我不希望转换为.wav格式进行读取。您能否建议一种可行的方法?

python audio

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

更改位集中的整数

如何更改 所使用的整数bitset?假设我曾经bitset声明一个变量mybitset来存储数字的位,例如 32。在进行一些操作后,我想mybitset存储其他数字的位,例如 63。我如何实现这一点?

我在下面添加了一小段示例代码来帮助解释。

bitset<32> mybits(32);
....
mybits(63);  // gives compilation error here, stating "no match for call to '(std::bitset<32u>) (uint&)'" 
Run Code Online (Sandbox Code Playgroud)

我觉得应该有一些简单的方法来做到这一点,但还没有找到任何东西。

c++ std-bitset

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

布局表达式的顺序在while循环中是否重要?

表达式之间有什么不同:

int a, b;
bool p = false;
while (cin >> a >> b and not p) { // code }

// and:

int a, b;
bool p = false;
while (not p and cin >> a >> b) { // code }
Run Code Online (Sandbox Code Playgroud)

c++ loops while-loop

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

使用OpenCV 2.4.10简要实现

有人知道使用OpenCV 2.4的Brief实现的链接吗?问候.

PS:我知道这些问题一般不受欢迎,因为主要关注的是你所做的工作.但是有一个类似的问题很受欢迎.

这些问题的答案之一表明了SIFT的通用方式,可以扩展到Brief.这是我稍微修改过的代码.

#include <opencv2/nonfree/nonfree.hpp> 
#include <opencv2/highgui/highgui.hpp>

//using namespace std;
using namespace cv;

int main(int argc, char *argv[])
{        
  Mat image = imread("load02.jpg", CV_LOAD_IMAGE_GRAYSCALE);
  cv::initModule_nonfree();
  // Create smart pointer for SIFT feature detector.
  Ptr<FeatureDetector> featureDetector = FeatureDetector::create("HARRIS"); // "BRIEF was initially written. Changed after answer."
  vector<KeyPoint> keypoints;

  // Detect the keypoints
  featureDetector->detect(image, keypoints); // NOTE: featureDetector is a pointer hence the '->'.

  //Similarly, we create a smart pointer to the SIFT extractor.
  Ptr<DescriptorExtractor> featureExtractor = DescriptorExtractor::create("BRIEF");

  // …
Run Code Online (Sandbox Code Playgroud)

c++ opencv

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

标签 统计

c++ ×4

python ×3

audio ×1

loops ×1

matplotlib ×1

numpy ×1

opencv ×1

plot ×1

sorting ×1

std-bitset ×1

while-loop ×1