小编Aco*_*rbe的帖子

从源代码编译的Pandas:默认的pickle行为发生了变化

我刚从源代码编译并安装了pandas(克隆的github repo,>>> setup.py install).

碰巧的是pickle,对象序列化/反序列化模块的默认行为发生了变化,可能被pandas内部模块部分覆盖了.

我有一些通过"标准"序列化的数据类pickle,显然我不能再反序列化了; 特别是,当我尝试反序列化一个类文件(肯定工作)时,我得到了这个错误

In [1]: import pickle

In [2]: pickle.load(open('pickle_L1cor_s1.pic','rb'))
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-2-88719f8f9506> in <module>()
----> 1 pickle.load(open('pickle_L1cor_s1.pic','rb'))

/home/acorbe/Canopy/appdata/canopy-1.1.0.1371.rh5-x86_64/lib/python2.7/pickle.pyc in load(file)
   1376
   1377 def load(file):
-> 1378     return Unpickler(file).load()
   1379
   1380 def loads(str):

/home/acorbe/Canopy/appdata/canopy-1.1.0.1371.rh5-x86_64/lib/python2.7/pickle.pyc in load(self)
    856             while 1:
    857                 key = read(1)
--> 858                 dispatch[key](self)
    859         except _Stop, stopinst:
    860             return stopinst.value

/home/acorbe/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pandas-0.12.0_1090_g46008ec-py2.7-linux-x86_64.egg/pandas/compat/pickle_compat.pyc in load_reduce(self)
     28
     29         # try to reencode the arguments
---> …
Run Code Online (Sandbox Code Playgroud)

python pickle pandas

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

列出 jupyter 实验室的运行实例

Jupyter notebook 附带有用的命令:

jupyter notebook list
Run Code Online (Sandbox Code Playgroud)

它输出当前用户的所有正在运行的服务器实例。此外,它还列出了相关的访问令牌。

Jupyter 实验室似乎没有这个功能。

浏览jupyter lab手册我找不到类似的命令(不是类似的语法似乎有效)。

关于如何为正在运行的服务器获取端口和令牌的任何建议?

jupyter jupyter-notebook jupyter-lab

11
推荐指数
2
解决办法
7557
查看次数

强制返回要分配的对象

有没有办法在C++中强制分配函数的返回值?即如果我有一个成员函数foo

class myClass{
    ...
    public:
    T1 foo(T2 x){T1 y; /*something*/ return y;};
}
Run Code Online (Sandbox Code Playgroud)

我可以在main()中调用

myClass obj;
T1 a = obj.foo(x);  //<--
Run Code Online (Sandbox Code Playgroud)

我能打个简单的电话吗?

myClass obj;
obj.foo(x);   //<--
Run Code Online (Sandbox Code Playgroud)

(不存储返回的值)某种程度上"非法"?

或者,我可以区分定义

T1 a = obj.foo(x);
obj.foo(x);
Run Code Online (Sandbox Code Playgroud)

谢谢你的时间,并为我的无知感到抱歉

c++

9
推荐指数
2
解决办法
1118
查看次数

Matlab:定义一个函数句柄,捕获函数的第二个返回值

假设我有一个foo定义为的函数

   [a b] = foo(c ).
Run Code Online (Sandbox Code Playgroud)

如果我考虑一个函数句柄

 f = @(c)foo(c)
Run Code Online (Sandbox Code Playgroud)

例如,在一个cellfun电话中使用,我得到的是一个f等同于foo定义的行为

  a = foo(c)
Run Code Online (Sandbox Code Playgroud)

即,返回的值b丢失.

因此,当这样的一个fcellfun调用时,输出单元将只有as并且将错过bs(我当前关心的).目视

    cellfun(f,input)

  [a(input{1})]           ?
  [a(input{2})]           ?
     ....            b gets killed along the way
Run Code Online (Sandbox Code Playgroud)

问:如何定义一个函数句柄foo捕获只是bS' 即赋予类似的定义行为foo

  b = foo(c)
Run Code Online (Sandbox Code Playgroud)

即^ 2,浪费a秒.

此外,是否可以(有效地)捕获两者ab在一个独特的 cellfun呼叫中?

matlab function-handle

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

如何从可执行文件的资源中提取48*48图标图像?

我可以提取32*32图标图像,但48*48怎么样?

我想从Windows中的.exe文件中提取大小为48*48的图标图像.首先,我获得了图标资源位,然后我使用了"CreateIconFromResourceEx"API,但它适用于尺寸为32*32的图标图像.

c++ windows icons

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

如何将两个图形文件合并为一个文件

这应该是一个简单的解决方案的问题,但我仍然无法找到一个.

假设我有2个matlab数字fig1.fig,fig2.fig我想加载并显示在同一个绘图窗口中.

我该怎么办?

我的意思是,我很确定我可以使用一些低(呃)级别的图形命令完成任务,该命令从一个图像中提取内容并将它们放在第二个图像中,但我无法相信没有任何高级函数(load fig2 on top of fig1)这样做...比较2个图(不幸的是已经保存)是一个非常常见的任务,我会说.

matlab matlab-figure

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

为什么Linux使用这个"指针指针"列表?

#define TAILQ_ENTRY(type)                       \
struct {                                \
    struct type *tqe_next;  /* next element */          \
    struct type **tqe_prev; /* address of previous next element */  \
}
Run Code Online (Sandbox Code Playgroud)

我发现上面的代码使用指针指针,这不是唯一的.我想知道为什么这样做?指针本身无法处理它?

c linux kernel

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

在散点图中正确缩放圆形标记

我有一个有限大小的圆形粒子系统(比如说r=5cm),我需要在给定的域中绘制(比方说L=5m).由于它们很多,scatter比任何循环使用都快rectangle.

什么我不清楚是定义正确的方式直径/半径的的圆/标记,以便于与绘制以及域几何正确缩放.(通过使用rectangle,可以很容易地定义粒子的直径.)

基于这个答案,可以精确控制标记尺寸,尽管实际缩放对我来说是模糊的.

任何人都能解释一下吗?

matlab plot scatter

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

python pandas,某些列到行

我有一个pandas数据帧,有4行和4列 - 这里是简单的版本:

import pandas as pd
import numpy as np
rows = np.arange(1, 4, 1)
values = np.arange(1, 17).reshape(4,4)
df = pd.DataFrame(values, index=rows, columns=['A', 'B', 'C', 'D'])
Run Code Online (Sandbox Code Playgroud)

我想要做的是将其转换为2*8数据帧,每个数组都有B,C和D alligng - 所以它看起来像这样:

1  2 
1  3
1  4
5  6
5  7
5  8
9  10
9  11
9  12
13 14
13 15
13 16
Run Code Online (Sandbox Code Playgroud)

阅读熊猫文档我试过这个:

df1 = pd.pivot_table(df, rows = ['B', 'C', 'D'], cols = 'A')
Run Code Online (Sandbox Code Playgroud)

但是给我一个错误,我无法确定来源(以...结尾)

DataError:无需聚合的数字类型

)

接下来我想基于A值拆分数据帧,但我认为.groupby命令可能会处理它

python pandas

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

让cv2.imread从文件对象或类似内存流的数据中读取图像(这里是非提取的tar)

我有一个.tar包含数百张图片的文件(.png).我需要通过opencv处理它们.

我想知道 - 出于效率原因 - 是否可以在不经过光盘的情况下处理它们.换句话说,我想从与tar文件相关的内存流中读取图片.

考虑一下

 import tarfile
 import cv2

 tar0 = tarfile.open('mytar.tar')
 im = cv2.imread( tar0.extractfile('fname.png').read() )
Run Code Online (Sandbox Code Playgroud)

最后一行不能正常工作,因为imread需要文件名而不是流.

考虑直接从tar流中读取这种方式可以例如针对文本实现(参见例如此SO问题).


有任何建议用正确的png编码打开流?

解包到ramdisk当然是一种选择,虽然我一直在寻找更多的东西可缓存.

python performance opencv tar imread

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