我知道如果我改变一条线的线宽,它会在图例中自动更新.但是我想在不影响绘图的情况下更改图例线宽.
我试图在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维数组,然后在正确的切片上取平均值,但无法弄清楚算法.你有什么提示吗?
我有一个很长的循环,我想检查每N次迭代的状态,在我的具体情况下,我有一个1000万个元素的循环,我想每百万次迭代打印一个简短的报告.
所以,目前我正在做(n是迭代计数器):
if (n % 1000000==0):
print('Progress report...')
Run Code Online (Sandbox Code Playgroud)
但我担心我通过计算每次迭代的模数来减慢过程,因为一次迭代只持续几毫秒.
有一个更好的方法吗?或者我不应该担心模数运算?
是否可以嵌套2个virtualenvs?
我想有一个基础virtualenv,然后一个更具体的virtualenv访问基本virtualenv的所有包,然后有自己的.
任何暗示都表示赞赏,谢谢.
有没有办法告诉哪个编译器用于Python
在特定的Linux机器上构建安装?
我试图使用ldd
的Python
动态库[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) 在ReadTheDocs上我不允许编译cython
扩展,是否可以配置sphinx
以从cython
文件中提取文档字符串而不实际编译它们?
谢谢!
我想从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
来删除它们.然而,它看起来并不正确.有更直接的方法吗?
我有大约500个HDF5文件,每个大约1.5 GB.
每个文件都具有相同的精确结构,即7个复合(int,double,double)数据集和可变数量的样本.
现在我想通过连接每个数据集来连接所有这些文件,以便最后我有一个包含7个数据集的750 GB文件.
目前我正在运行一个h5py脚本:
这显然需要几个小时,你有关于改善这个的建议吗?
我正在开发一个集群,所以我可以并行使用HDF5,但是我在C编程中不够自己实现一些东西,我需要一个已经编写过的工具.
我知道如何获得一个指向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,而不是复制数组.必须有一个简单的方法来做到这一点,但找不到它.
任何暗示赞赏.