草庐IT

python - 给定字节缓冲区、数据类型、形状和步幅,如何创建 Numpy ndarray

我有一个缓冲区、数据类型、形状和步幅。我想创建一个重用缓冲区内存的Numpyndarray。有numpy.frombuffer它从缓冲区创建一维数组并重用内存。但是,我不确定我是否可以轻松安全地reshape它并设定步伐。有numpy.ndarrayconstructor它可以引用一个缓冲区,但我不确定它是否会重用内存或者是否会复制它(文档中不清楚)。那么,numpy.ndarray构造函数会做我想做的事吗?或者我可以用什么代替?好的,所以我现在想弄清楚numpy.ndarray构造函数到底在做什么。密码是here.它使用PyArray_BufferConverter来转换缓冲区参数。

python - 如何将当前缓冲区加载到 Emacs 中的 Python 解释器中?

我正在尝试使用emacs编辑和运行python程序(Ubuntu10.10上的emacs23和python2.6)。我将文件读入Emacs(C-x-C-f)我启动解释器(菜单Python-启动解释器,我还没有找到它的键盘快捷键)Emacs将框架拆分为两个窗口我将光标放在python文件中(C-xo)现在我想在下方窗口的Python解释器中运行上方窗口中的Python代码。其他地方有建议:C-cC-c,但这什么都不做C-c!,但是emacs说该命令未定义我已经安装了ropemacs(sudoapt-getinstallpython-ropemacs)但是这并没有改变任何东西。

python - Cython 说缓冲区类型只允许作为函数局部变量,即使对于 ndarray.copy()

我是Cython的新手,遇到了这段代码:importnumpyasnpcimportnumpyasnptestarray=np.arange(5)cdefnp.ndarray[np.int_t,ndim=1]testarray1=testarray.copy()cdefnp.ndarray[np.float_t,ndim=1]testarray2=testarray.astype(np.float)在编译期间,它说Buffertypesonlyallowedasfunctionlocalvariables。但是,我使用的是.copy()或.astype(),它返回的不是内存View,而

python - matplotlib 中的 R 风格数据轴缓冲区

R绘图会自动设置x和y限制,以在数据和轴之间留出一些空间。我想知道matplotlib是否有办法自动执行相同的操作。如果不是,是否有关于R如何设置其轴限制的好的公式或“经验法则”? 最佳答案 在matplotlib中,您可以通过设置margins来实现此目的importmatplotlib.pyplotaspltfig,ax=plt.subplots()ax.margins(0.04)data=range(1,11)ax.plot(data,'wo')plt.savefig('margins.png')但是,好像没有,有一个rc参数

【Linux】理解缓冲区

文章目录一.引入二.认识缓冲区1.为什么2.刷新策略3.在哪里三、理解缓冲区一.引入我们发现printf和fwrite(库函数)都输出了2次,而write只输出了一次(系统调用)。为什么呢?肯定和fork有关!C接口的函数被打印了两次系统接口前后只是打印了一次:和fork函数有关,fork会创建子进程。在创建子进程的时候,数据会被处理成两份,父子进程发生写时拷贝,我们进行printf调用数据的时候,数据写到显示器外设上,就不属于父进程了,数据没被写到显示器上,依旧属于父进程,而调用printf并不一定把数据刷到显示器上,没有被显示本质就是数据没有从内存到外设,所以这份没有被显示的数据依旧属于这

python - 更改 multiprocessing.Queue 中的缓冲区大小

所以我有一个系统,生产者和消费者通过无限大小的队列连接,但是如果消费者重复调用get直到抛出Empty异常,它不会清除队列。我相信这是因为一旦套接字缓冲区已满,消费者端队列中将对象序列化到套接字中的线程就会被阻塞,因此它会等待直到缓冲区有空间,但是,这是可能的消费者调用get“太快”,因此它认为队列是空的,而实际上另一端的线程有更多数据要发送,但不能足够快地序列化它以防止套接字对消费者来说是空的。我相信如果我可以更改底层套接字上的缓冲区大小(我是基于Windows的),这个问题就会得到缓解。据我所知,我需要做的是:importmultiprocessing.connectionsasc

python - 什么是适合 Python 的结构模块的缓冲区

在Python中,我通过将二进制文件读入字符串然后使用struct.unpack(...)来访问它。现在我想使用struct.pack_into(...)写入该字符串,但出现错误“无法将字符串用作可修改缓冲区”。什么是适合与struct模块一起使用的缓冲区? 最佳答案 如另一个答案所述,struct_pack可能是您需要和应该使用的全部。但是,类型为array的对象支持缓冲协议(protocol),可修改:>>>importarray,struct>>>a=array.array('c',''*1000)>>>c='a';i=1>>

python - 有人可以解释管道缓冲区死锁吗?

Popen状态的Python文档:WarningUsecommunicate()ratherthan.stdin.write,.stdout.reador.stderr.readtoavoiddeadlocksduetoanyoftheotherOSpipebuffersfillingupandblockingthechildprocess.现在,我试图弄清楚这种死锁是如何发生的以及为什么会发生。我的心智模型:子进程向stdout/err产生一些东西,它被缓冲,在缓冲区被填充后,它被刷新到子进程的stdout/err,它通过管道发送到父进程。根据文档所述,管道有自己的缓冲区,当它被填满

python - 如何在 Python 3.1 中将字符串转换为缓冲区?

我正在尝试使用以下行将某些内容通过管道传输到subprocess:p.communicate("insertintoeggvalues('egg');");TypeError:mustbebytesorbuffer,notstr如何将字符串转换为缓冲区? 最佳答案 正确答案是:p.communicate(b"insertintoeggvalues('egg');");注意前导的b,告诉您它是字节串,而不是unicode字符串。此外,如果您正在从文件中读取此内容:value=open('thefile','rt').read()p.c

Python:如何使用 struct.pack_into 将不同类型的数据打包到字符串缓冲区中

我正在尝试将一些无符号整数数据打包到使用ctypes.create_string_buffer创建的字符串缓冲区中。这是以下代码段,以及显示错误oncodepad的运行示例:importstructimportctypesimportbinasciibuf=ctypes.create_string_buffer(16)struct.pack_into("=I=I=I",buf,0,1,2,3)printbinascii.hexlify(buf)这会产生以下错误:...struct.error:badcharinstructformat如果底层缓冲区是特定的C类型,文档没有提到您是否可以