小编row*_*man的帖子

将C++数组发送到Python并返回(使用Numpy扩展C++)

我将发送一个c++数组到python函数,numpy array然后再返回另一个numpy array.在查阅了numpy文档和其他一些线程并调整代码后,最后代码正在运行,但我想知道这段代码是否以最佳方式编写,考虑到:

  • c++和之间不必要地复制数组numpy (python).
  • 正确解除变量的引用.
  • 简单直接的方法.

C++代码:

// python_embed.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
#include "Python.h"
#include "numpy/arrayobject.h"
#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    Py_SetProgramName(argv[0]);
    Py_Initialize();
    import_array()

    // Build the 2D array
    PyObject *pArgs, *pReturn, *pModule, *pFunc;
    PyArrayObject *np_ret, *np_arg;
    const int SIZE{ 10 };
    npy_intp dims[2]{SIZE, SIZE};
    const int ND{ 2 }; …
Run Code Online (Sandbox Code Playgroud)

c++ python arrays numpy c-api

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

matplotlib很慢.这是正常的吗?

我正在用matplotlib创建几个pdf图,它由400个子图组成.每个只有5个数据点.在一台好的电脑上需要420秒才能保存5张pdf图片.有没有办法优化代码,或者matplotlib是正常的?

绘图的部分代码:

plot_cnt = 1
for k in np.arange(K_min, K_max + 1):
    for l in np.arange(L_min, L_max + 1):
        ax = plt.subplot(grid[0], grid[1], plot_cnt)
        plot_cnt += 1
        plt.setp(ax, 'frame_on', False)
        ax.set_ylim([-0.1, 1.1])
        ax.set_xlabel('K={},L={}'.format(k, l), size=3)
        ax.set_xlim([-0.1, 4.1])
        ax.set_xticks([])
        ax.set_yticks([])
        ax.grid('off')
        ax.plot(np.arange(5), (data['S1']['Azimuth'][:, k - 1, l + offset_l] + \
                data['S1']['Delta Speed'][:, k - 1, l + offset_l] + \
                data['S1']['Speed'][:, k - 1, l + offset_l]) / 3,
                'r-o', ms=1, mew=0, mfc='r')
        ax.plot(np.arange(5), data['S2'][case][:, k - 1, l + …
Run Code Online (Sandbox Code Playgroud)

python performance matplotlib

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

Emacs缓冲区撤消限制

matlab-shell当我打印到stdout时,我在缓冲区中收到此警告:

Warning (undo): Buffer `*MATLAB*' undo info was 12268000 bytes long.
The undo info was discarded because it exceeded `undo-outer-limit'.

This is normal if you executed a command that made a huge change
to the buffer.  In that case, to prevent similar problems in the
future, set `undo-outer-limit' to a value that is large enough to
cover the maximum size of normal changes you expect a single
command to make, but not so large that it might exceed the …
Run Code Online (Sandbox Code Playgroud)

emacs matlab

6
推荐指数
2
解决办法
1952
查看次数

python中具有无限初始条件的ODE

我有一个二阶微分方程,我想在 python 中解决它。问题是,对于其中一个变量,我没有初始条件,0而只有无穷大的值。谁能告诉我应该提供哪些参数scipy.integrate.odeint?能解决吗?

方程: 在此处输入图片说明

需要在时间方面找到 Theta。它的一阶导数在 处为零t=0。theta 未知,t=0但它在足够长的时间内变为零。其余的都是已知的。由于近似值I可以设置为零,因此消除了二阶导数,这将使问题更容易。

python scipy ode

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

简单程序的高CPU使用率

下面的代码用于空窗口,但在我的Intel i3上显示相对较高的CPU使用率25%.我也试过setFramerateLimit没有改变.有没有办法减少CPU使用率?

#include<SFML/Window.hpp>

void processEvents(sf::Window& window);

int main()
{
    sf::Window window(sf::VideoMode(800, 600), "My Window", sf::Style::Close);
    window.setVerticalSyncEnabled(true);

    while (window.isOpen())
    {
        processEvents(window);
    }
    return 0;
}

void processEvents(sf::Window& window)
{
    sf::Event event;
    window.pollEvent(event);
    switch (event.type)
    {
    case sf::Event::Closed:
        window.close();
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ cpu-usage sfml

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

标签 统计

python ×3

c++ ×2

arrays ×1

c-api ×1

cpu-usage ×1

emacs ×1

matlab ×1

matplotlib ×1

numpy ×1

ode ×1

performance ×1

scipy ×1

sfml ×1