小编And*_*nca的帖子

增加matplotlib中图例线的线宽

我知道如果我改变一条线的线宽,它会在图例中自动更新.但是我想在不影响绘图的情况下更改图例线宽.

python matplotlib legend

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

具有1位条目的numpy布尔数组

有没有办法在numpy中创建一个布尔数组,每个条目只使用1位?

标准np.bool类型是1个字节,但这样我使用所需内存的8倍.

在谷歌上我发现C++有std::vector<bool>.

python boolean numpy

31
推荐指数
3
解决办法
2万
查看次数

通过平均或重新调整numpy 2d数组来调整大小

我试图在python中重新实现一个IDL函数:

http://star.pst.qub.ac.uk/idl/REBIN.html

通过求平均值减去2d阵列的整数因子.

例如:

>>> a=np.arange(24).reshape((4,6))
>>> a
array([[ 0,  1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10, 11],
       [12, 13, 14, 15, 16, 17],
       [18, 19, 20, 21, 22, 23]])
Run Code Online (Sandbox Code Playgroud)

我想通过取相关样本的平均值将其调整为(2,3),预期输出为:

>>> b = rebin(a, (2, 3))
>>> b
array([[  3.5,   5.5,  7.5],
       [ 15.5, 17.5,  19.5]])
Run Code Online (Sandbox Code Playgroud)

b[0,0] = np.mean(a[:2,:2]), b[0,1] = np.mean(a[:2,2:4])等等.

我相信我应该重塑为4维数组,然后在正确的切片上取平均值,但无法弄清楚算法.你有什么提示吗?

python numpy slice binning

26
推荐指数
3
解决办法
2万
查看次数

在Python中每N次迭代执行语句

我有一个很长的循环,我想检查每N次迭代的状态,在我的具体情况下,我有一个1000万个元素的循环,我想每百万次迭代打印一个简短的报告.

所以,目前我正在做(n是迭代计数器):

if (n % 1000000==0):
    print('Progress report...')
Run Code Online (Sandbox Code Playgroud)

但我担心我通过计算每次迭代的模数来减慢过程,因为一次迭代只持续几毫秒.

有一个更好的方法吗?或者我不应该担心模数运算?

python loops

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

我可以嵌套virtualenvs?

是否可以嵌套2个virtualenvs?

我想有一个基础virtualenv,然后一个更具体的virtualenv访问基本virtualenv的所有包,然后有自己的.

任何暗示都表示赞赏,谢谢.

python virtualenv

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

如何检查用于构建Python的编译器

有没有办法告诉哪个编译器用于Python在特定的Linux机器上构建安装?

我试图使用lddPython动态库[1],但我没能明白,如果它被编译gcc或英特尔编译.

[1]

$ ldd libpython2.7.so.1.0
linux-vdso.so.1 =>  (0x00007fff4a5ff000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ab8de8ae000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002ab8deac9000)
libutil.so.1 => /lib64/libutil.so.1 (0x00002ab8deccd000)
libm.so.6 => /lib64/libm.so.6 (0x00002ab8deed1000)
libc.so.6 => /lib64/libc.so.6 (0x00002ab8df154000)
/lib64/ld-linux-x86-64.so.2 (0x0000003b9a400000)
Run Code Online (Sandbox Code Playgroud)

python compiler-construction

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

如何在readthedocs上记录cython函数

ReadTheDocs上我不允许编译cython扩展,是否可以配置sphinx以从cython文件中提取文档字符串而不实际编译它们?

谢谢!

python cython python-sphinx

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

从pandas MultiIndex中删除一个级别

我想从a中完全删除一个级别 MultiIndex

import pandas as pd
tuples = [(0, 100, 1000),(0, 100, 1001),(0, 100, 1002), (1, 101, 1001)]
index_3levels=pd.MultiIndex.from_tuples(tuples,names=["l1","l2","l3"])
print index_3levels.levels
[Int64Index([0, 1], dtype=int64), Int64Index([100, 101], dtype=int64), Int64Index([1000, 1001, 1002], dtype=int64)]
Run Code Online (Sandbox Code Playgroud)

我想提取前2个级别,以实现:

print index_2levels
MultiIndex
[(0, 100), (1, 101)]
Run Code Online (Sandbox Code Playgroud)

droplevel 删除级别但保留重复项:

print index_3levels.droplevel("l3")
MultiIndex
[(0, 100), (0, 100), (0, 100), (1, 101)]
Run Code Online (Sandbox Code Playgroud)

我原则上可以打电话unique来删除它们.然而,它看起来并不正确.有更直接的方法吗?

python pandas

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

连接大量HDF5文件

我有大约500个HDF5文件,每个大约1.5 GB.

每个文件都具有相同的精确结构,即7个复合(int,double,double)数据集和可变数量的样本.

现在我想通过连接每个数据集来连接所有这些文件,以便最后我有一个包含7个数据集的750 GB文件.

目前我正在运行一个h5py脚本:

  • 使用无限制的最大数据集创建HDF5文件
  • 按顺序打开所有文件
  • 检查样本数量(因为它是可变的)
  • 调整全局文件的大小
  • 追加数据

这显然需要几个小时,你有关于改善这个的建议吗?

我正在开发一个集群,所以我可以并行使用HDF5,但是我在C编程中不够自己实现一些东西,我需要一个已经编写过的工具.

scientific-computing hdf5 dataset

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

ctypes指针进入numpy数组的中间

我知道如何获得一个指向numpy数组开头的ctypes指针:

a = np.arange(10000, dtype=np.double)
p = a.ctypes.data_as(POINTER(c_double))
p.contents
c_double(0.0)
Run Code Online (Sandbox Code Playgroud)

但是,我需要将指针传递给元素100,而不是复制数组.必须有一个简单的方法来做到这一点,但找不到它.

任何暗示赞赏.

python ctypes pointers numpy

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