小编jkm*_*acc的帖子

Python,可变长度位置参数后的默认关键字参数

我想我可以在Python 2的函数调用中使用可变长度位置参数之后的命名参数,但是SyntaxError在导入python类时我得到了一个.我正在使用以下"get"方法编写,例如:

class Foo(object):
    def __init__(self):
        print "You have created a Foo."

    def get(self, *args, raw=False, vars=None):
        print len(args)
        print raw
        print vars
Run Code Online (Sandbox Code Playgroud)

错误看起来像:

def get(self, *args, raw=False, vars=None):
                     ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

我希望能够通过几种方式调用该方法:

f = Foo()
f.get(arg1, arg2)
f.get(arg1, raw=True)
f.get(arg1, arg2, raw=True, vars=something)
Run Code Online (Sandbox Code Playgroud)

等等

python python-2.x variadic-functions named-parameters default-parameters

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

Python Pandas,将DataFrame写入固定宽度文件(to_fwf?)

我看到熊猫有read_fwf,但它有类似的东西DataFrame.to_fwf吗?我正在寻找对字段宽度,数值精度和字符串对齐的支持.似乎DataFrame.to_csv不这样做. numpy.savetxt是的,但我不想这样做:

numpy.savetxt('myfile.txt', mydataframe.to_records(), fmt='some format')
Run Code Online (Sandbox Code Playgroud)

这似乎是错的.非常感谢您的想法.

python fixed-width pandas

13
推荐指数
4
解决办法
8347
查看次数

在iPython中查看reStructuredText(Sphinx)文档字符串?

当您键入以下内容时,有没有办法让IPython完全呈现reStructuredText(对于Sphinx)文档字符串:

help foo
Run Code Online (Sandbox Code Playgroud)

要么:

foo?
Run Code Online (Sandbox Code Playgroud)

我觉得超级分心,试图读取IPython的帮助文档时,它显示了原始标记.reST非常适合Sphinx文档,但真正使简单的帮助查找变得混乱.我不能孤身一人......?

谷歌一直没有帮助.

python restructuredtext docstring ipython python-sphinx

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

如何在文档字符串中指定 Pandas DataFrame 架构/结构?

我想描述我的 Python 函数所期望的 DataFrame 结构,以及如下的口头描述:

def myfun(input):
    """ Does a thing.
    Parameters
    ----------
    input : pandas.DataFrame
        column 1 is called 'thing1' and it is of dtype 'i4'"
    """
    ...
Run Code Online (Sandbox Code Playgroud)

感觉容易出错。有没有一种传统的方式来描述它?我在 Pandas 文档字符串文档中没有看到任何内容。

docstring dataframe pandas

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

适用于多个用户或组的 Virtualenv

我正在为一群 Python 新手建立一个新系统,以使用 Python 进行特定类型的科学工作。它有 2 个不同的 python(32 位和 64 位),我想安装一组系统上的用户将使用的通用模块。

  • (a) 一些模块对于这两种 python 都是开箱即用的,
  • (b) 一些编译代码并根据 python 进行不同的安装,以及
  • (c) 有些在某些 python 上根本不起作用。

有人告诉我 virtualenv (+ wrapper) 对这种情况有好处,但我不清楚如何。

  1. 我可以使用 virtualenv 跨多个用户帐户设置沙盒模块,而不必为每个用户安装每个模块吗?
  2. 我可以使用 virtualenv 为案例 (a) 节省一些时间,即安装一个模块,但所有 python 都能看到它吗?

我喜欢隔离环境的想法,然后让他们根据案例 (c) 的问题键入“workon science32”、“workon science64”。

任何建议表示赞赏。

python virtualenv virtualenvwrapper

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

将新的 Xarray DataArray 添加到现有的 Zarr 存储而不重写整个数据集?

如何在不覆盖整个内容的情况下DataArray向现有内容添加新内容?Dataset新的DataArray与现有的有一些坐标,但也有新的。在我当前的实现中,Dataset被完全覆盖,而不是仅仅添加新的东西。

现有的DataArray是分块的 zarr 支持DirectoryStore(尽管我对于 S3 存储也有同样的问题)。

import numpy as np
import xarray as xr
import zarr

arr1 = xr.DataArray(np.random.randn(2, 3),
                   [('x', ['a', 'b']), ('y', [10, 20, 30])],
                   name='arr1')

ds = arr1.chunk({'x': 1, 'y': 3}).to_dataset()
Run Code Online (Sandbox Code Playgroud)

ds看起来像这样:

<xarray.Dataset>
Dimensions:  (x: 2, y: 3)
Coordinates:
  * x        (x) <U1 'a' 'b'
  * y        (y) int64 10 20 30
Data variables:
    arr1     (x, y) float64 dask.array<shape=(2, 3), chunksize=(1, 3)>
Run Code Online (Sandbox Code Playgroud)

我将其写入目录存储:

store …
Run Code Online (Sandbox Code Playgroud)

dask python-xarray zarr

5
推荐指数
2
解决办法
4227
查看次数

异步 Xarray 写入 Zarr

全部。我正在使用 Dask 分布式集群在循环内编写 Zarr+Dask 支持的 Xarray 数据集,并且dataset.to_zarr正在阻塞。当存在阻碍循环继续的散乱块时,这确实会减慢速度。有没有办法.to_zarr异步执行,以便循环可以继续下一个数据集写入而不会被一些落后的块所阻碍?

dask python-xarray zarr

2
推荐指数
1
解决办法
380
查看次数

Python条件字典理解

这个列表comp有效的原因是:

N = 5
d = {0:100, 2:5}
[(dpidx,d[dpidx]) if dpidx in d else (dpidx,dpidx) for dpidx in range(N)]

[(0, 100), (1, 1), (2, 5), (3, 3), (4, 4)]
Run Code Online (Sandbox Code Playgroud)

但这个dict comp不起作用?:

{dpidx:d[dpidx] if dpidx in d else dpidx:dpidx for dpidx in range(N)}

{dpidx:d[dpidx] if dpidx in d else dpidx:dpidx for dpidx in range(N)}
                                        ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

我在找:

{0: 100, 1: 1, 2: 5, 3: 3, 4: 4}
Run Code Online (Sandbox Code Playgroud)

我以为我可以使用dict comp而不是dict(list comp).

提前致谢!

python dictionary list-comprehension

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