我想我可以在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
我看到熊猫有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)
这似乎是错的.非常感谢您的想法.
当您键入以下内容时,有没有办法让IPython完全呈现reStructuredText(对于Sphinx)文档字符串:
help foo
Run Code Online (Sandbox Code Playgroud)
要么:
foo?
Run Code Online (Sandbox Code Playgroud)
我觉得超级分心,试图读取IPython的帮助文档时,它显示了原始标记.reST非常适合Sphinx文档,但真正使简单的帮助查找变得混乱.我不能孤身一人......?
谷歌一直没有帮助.
我想描述我的 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 文档字符串文档中没有看到任何内容。
我正在为一群 Python 新手建立一个新系统,以使用 Python 进行特定类型的科学工作。它有 2 个不同的 python(32 位和 64 位),我想安装一组系统上的用户将使用的通用模块。
有人告诉我 virtualenv (+ wrapper) 对这种情况有好处,但我不清楚如何。
我喜欢隔离环境的想法,然后让他们根据案例 (c) 的问题键入“workon science32”、“workon science64”。
任何建议表示赞赏。
如何在不覆盖整个内容的情况下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 分布式集群在循环内编写 Zarr+Dask 支持的 Xarray 数据集,并且dataset.to_zarr正在阻塞。当存在阻碍循环继续的散乱块时,这确实会减慢速度。有没有办法.to_zarr异步执行,以便循环可以继续下一个数据集写入而不会被一些落后的块所阻碍?
这个列表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 ×5
dask ×2
docstring ×2
pandas ×2
zarr ×2
dataframe ×1
dictionary ×1
fixed-width ×1
ipython ×1
python-2.x ×1
virtualenv ×1