Questions tagged «python»

Python是一种多范式,动态类型的多用途编程语言。它旨在快速学习,理解和使用并强制使用干净统一的语法。请注意,Python 2自2020年1月1日起已不再受支持。不过,对于特定于版本的Python问题,请添加[python-2.7]或[python-3.x]标签。使用Python变体或库(例如Jython,PyPy,Pandas,Numpy)时,请将其包含在标签中。

4
使用收益递归
有什么方法可以混合使用递归和yield语句吗?例如,无限数生成器(使用递归)将类似于: def infinity(start): yield start # recursion here ... >>> it = infinity(1) >>> next(it) 1 >>> next(it) 2 我试过了: def infinity(start): yield start infinity(start + 1) 和 def infinity(start): yield start yield infinity(start + 1) 但是他们都没有做我想要的事情,第一个在屈服后停止start,第二个在屈服之后start,然后是发电机,然后停了下来。 注意:请知道,您可以使用while循环来做到这一点: def infinity(start): while True: yield start start += 1 我只想知道这是否可以递归进行。

3
在Python的argparse中多次使用相同的选项
我正在尝试编写一个脚本,该脚本接受多个输入源并对每个输入源都执行某项操作。像这样 ./my_script.py \ -i input1_url input1_name input1_other_var \ -i input2_url input2_name input2_other_var \ -i input3_url input3_name # notice inputX_other_var is optional 但是我不太清楚如何使用argparse。似乎已设置好,因此每个选项标志只能使用一次。我知道如何将多个参数与单个选项(nargs='*'或nargs='+')关联,但这仍然不允许我-i多次使用该标志。我该如何完成这项工作? 为了清楚起见,我最后想要的是一个字符串列表列表。所以 [["input1_url", "input1_name", "input1_other"], ["input2_url", "input2_name", "input2_other"], ["input3_url", "input3_name"]]

1
Plt.show显示完整图形,但savefig裁剪图像
我的代码成功地将图像保存到文件,但是它从右侧裁剪了重要的细节。存在解决此问题的答案plt.show,但是savefig在此示例中,该命令错误地生成了图形。如何解决? 我的代码的相关示例: import glob import os for file in glob.glob("*.oax"): try: spc_file = open(file, 'r').read() newName = file[6:8] + '-' + file[4:6] + '-' + file[0:4] + ' ' + file[8:12] + ' UTC (Observed) - No Sea Breeze Day' plt.title(newName, fontsize=12, loc='left') plt.savefig('X:/' + newName + '.png') plt.show() except …

7
Python Django Rest Framework UnorderedObjectListWarning
我从Django 1.10.4升级到1.11.1,突然我在运行测试时收到大量这些消息: lib/python3.5/site-packages/rest_framework/pagination.py:208: UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list: <QuerySet [<Group: Requester>]> paginator = self.django_paginator_class(queryset, page_size) 我已经将其追溯到Django Pagination模块:https : //github.com/django/django/blob/master/django/core/paginator.py#L100 它似乎与我的查询集代码有关: return get_user_model().objects.filter(id=self.request.user.id) 我如何找到有关此警告的更多详细信息?似乎我需要order_by(id)在每个过滤器的末尾添加一个,但是我似乎找不到要添加order_by的代码(因为警告不会返回堆栈跟踪,因此它在测试期间会随机发生跑)。 谢谢! 编辑: 因此,使用@KlausD。详细提示,我查看了一个导致此错误的测试: response = self.client.get('/api/orders/') 这可以解决,OrderViewSet但是get_queryset中的任何事情都不会导致它,而序列化程序类中的任何原因都不会导致它。我还有其他使用相同代码来获取/ api / orders的测试,而这些测试不会导致它.... get_queryset之后DRF会做什么? https://github.com/encode/django-rest-framework/blob/master/rest_framework/pagination.py#L166 如果我对分页进行追溯,那么我会得到一堆与Django rest框架有关的东西,但是没有任何东西可以指出我的哪些查询正在触发顺序警告。

3
PermissionError:[Errno 13]在python中
刚开始学习一些python时,我遇到了如下问题: a_file = open('E:\Python Win7-64-AMD 3.3\Test', encoding='utf-8') Traceback (most recent call last): File "<pyshell#9>", line 1, in <module> a_file = open('E:\Python Win7-64-AMD 3.3\Test', encoding='utf-8') PermissionError: [Errno 13] Permission denied: 'E:\\Python Win7-64-AMD 3.3\\Test\ 似乎是文件许可错误,如果任何人都可以发光一点,将不胜感激。 注意:不确定Python和Windows文件如何工作,但是我以Admin身份登录Windows,并且该文件夹具有admin权限。 我试图更改.exe属性以管理员身份运行。

4
如何在matplotlib中绘制以密度着色的散点图?
我想作一个散点图,其中每个点都由附近点的空间密度着色。 我遇到了一个非常类似的问题,其中显示了使用R的示例: R散点图:符号颜色代表重叠点的数量 使用matplotlib在python中完成类似操作的最佳方法是什么?

6
如何将每个包含一组子命令的Click命令拆分为多个文件?
我已经开发了一个大型点击应用程序,但是浏览不同的命令/子命令变得很困难。如何将命令组织到单独的文件中?是否可以将命令及其子命令组织到单独的类中? 这是一个我想如何分开的例子: 在里面 import click @click.group() @click.version_option() def cli(): pass #Entry Point command_cloudflare.py @cli.group() @click.pass_context def cloudflare(ctx): pass @cloudflare.group('zone') def cloudflare_zone(): pass @cloudflare_zone.command('add') @click.option('--jumpstart', '-j', default=True) @click.option('--organization', '-o', default='') @click.argument('url') @click.pass_obj @__cf_error_handler def cloudflare_zone_add(ctx, url, jumpstart, organization): pass @cloudflare.group('record') def cloudflare_record(): pass @cloudflare_record.command('add') @click.option('--ttl', '-t') @click.argument('domain') @click.argument('name') @click.argument('type') @click.argument('content') @click.pass_obj …

6
可变函数参数默认值的好用法?
在Python中,将可变对象设置为函数中参数的默认值是一个常见错误。这是David Goodger的出色文章中的一个例子: >>> def bad_append(new_item, a_list=[]): a_list.append(new_item) return a_list >>> print bad_append('one') ['one'] >>> print bad_append('two') ['one', 'two'] 为什么发生这种情况的解释在这里。 现在我的问题是:这种语法是否有很好的用例? 我的意思是,如果每个遇到此错误的人都犯了同样的错误,对其进行调试,了解了问题并从此试图避免它,那么这种语法有什么用?

3
是否可以在子进程中运行功能而无需线程化或编写单独的文件/脚本。
import subprocess def my_function(x): return x + 100 output = subprocess.Popen(my_function, 1) #I would like to pass the function object and its arguments print output #desired output: 101 我只找到有关使用单独的脚本打开子流程的文档。有谁知道如何传递函数对象甚至是传递函数代码的简便方法?

2
如何从pandas groupby()。sum()的输出中创建新列?
尝试从groupby计算中创建新列。在下面的代码中,我获得了每个日期的正确计算值(请参阅下面的组),但是当我尝试df['Data4']用它创建一个新列()时,我得到了NaN。因此,我正在尝试在数据框中使用Data3所有日期的总和创建一个新列,并将其应用于每个日期行。例如,2015-05-08位于2行中(总计为50 + 5 = 55),在这个新列中,我希望两行都具有55。 import pandas as pd import numpy as np from pandas import DataFrame df = pd.DataFrame({ 'Date' : ['2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05', '2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05'], 'Sym' : ['aapl', 'aapl', 'aapl', 'aapl', 'aaww', 'aaww', 'aaww', 'aaww'], 'Data2': [11, 8, 10, 15, 110, 60, 100, 40], 'Data3': …

14
Boto3从S3存储桶下载所有文件
我正在使用boto3从s3存储桶获取文件。我需要类似的功能aws s3 sync 我当前的代码是 #!/usr/bin/python import boto3 s3=boto3.client('s3') list=s3.list_objects(Bucket='my_bucket_name')['Contents'] for key in list: s3.download_file('my_bucket_name', key['Key'], key['Key']) 只要存储桶中只有文件,就可以正常工作。如果存储桶中存在文件夹,则抛出错误 Traceback (most recent call last): File "./test", line 6, in <module> s3.download_file('my_bucket_name', key['Key'], key['Key']) File "/usr/local/lib/python2.7/dist-packages/boto3/s3/inject.py", line 58, in download_file extra_args=ExtraArgs, callback=Callback) File "/usr/local/lib/python2.7/dist-packages/boto3/s3/transfer.py", line 651, in download_file extra_args, callback) File "/usr/local/lib/python2.7/dist-packages/boto3/s3/transfer.py", line …

2
将pandas.Series直方图保存到文件
在ipython Notebook中,首先创建一个pandas Series对象,然后通过调用实例方法.hist(),浏览器将显示该图。 我想知道如何将该图形保存到文件中(不是通过右键单击另存为,而是脚本中所需的命令)。

6
熊猫:将类别转换为数字
假设我有一个包含以下国家/地区的数据框: cc | temp US | 37.0 CA | 12.0 US | 35.0 AU | 20.0 我知道有一个pd.get_dummies函数可以将国家/地区转换为“一次性编码”。但是,我希望将它们转换为索引,以便获取cc_index = [1,2,1,3]。 我假设有一种比使用get_dummies和numpy where子句更快的方法,如下所示: [np.where(x) for x in df.cc.get_dummies().values] 这在R中使用“因素”更容易做到,所以我希望熊猫也有类似的东西。

1
在Keras中,TimeDistributed层的作用是什么?
我试图了解TimeDistributed包装器在Keras中的作用。 我得到了TimeDistributed“将层应用于输入的每个时间片”。 但是我做了一些实验,却得到了我无法理解的结果。 简而言之,对于LSTM层,TimeDistributed和Just Dense层的结果相同。 model = Sequential() model.add(LSTM(5, input_shape = (10, 20), return_sequences = True)) model.add(TimeDistributed(Dense(1))) print(model.output_shape) model = Sequential() model.add(LSTM(5, input_shape = (10, 20), return_sequences = True)) model.add((Dense(1))) print(model.output_shape) 对于这两个模型,我得到的输出形状为(None,10,1)。 在RNN层之后,谁能解释TimeDistributed和Dense层之间的区别?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.