Questions tagged «python»

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

1
我们可以在Altair中绘制图像数据吗?
我想要绘制在牛郎星图像数据,特别是试图复制人脸识别例如从杰克VDP的书这个环节- https://jakevdp.github.io/PythonDataScienceHandbook/05.07-support-vector-machines.html。 有人幸运地在Altair中绘制了图像数据吗?
10 python  imshow  altair 

1
升级Python主要版本后,将软件包自动重新安装到虚拟环境中
我的磁盘上有几个虚拟环境(数十个),它们是由venvPython 3.6模块制成的。现在,我匆忙升级到Ubuntu 19.10,直到后来才注意到,众所周知的来源对于Ubuntu 19.10根本不提供3.6。通过设法找到这些虚拟环境的Python版本,方法是位于bin/python3主目录下并python3.7 -mvenv --upgrade在包含的文件夹中运行。 现在,当python3.7 -mvenv --upgrade在虚拟环境中升级Python时,它并没有执行任何操作来在lib/python3.7/site-packages之下重新安装我以前的软件包版本venv。我想我可以通过安装Python 3.6,pip freeze从中获取要求venv,然后将venv升级到Python 3.7,pip install -r从而做到这一点- 如果只有适用于我的新OS的Python 3.6安装。 还有其他方法可以以相当自动化的方式(也许主要是pip freeze使用旧lib/python3.6目录)来执行此操作,而无需我从源码安装Python 3.6,使用conda或从某些随机PPA安装3.6吗?我想整体升级所有环境,以便将来当我需要在随机环境中执行某些操作时,它将继续与Python 3.7一起使用。

2
如果MySQL ENUM值的名称中有空格,如何定义Python Enum属性?
我有这样的Python Enum类: from enum import Enum class Seniority(Enum): Intern = "Intern" Junior_Engineer = "Junior Engineer" Medior_Engineer = "Medior Engineer" Senior_Engineer = "Senior Engineer" 在MYSQL数据库中,资历ENUM列的值为“实习生”,“初级工程师”,“中级工程师”,“高级工程师”。 问题是我得到一个错误: LookupError: "Junior Engineer" is not among the defined enum values 当我像这样调用查询时,发生了此错误: UserProperty.query.filter_by(full_name='John Doe').first() seniority是UserProperty模型中的枚举属性。 class UserProperty(db.Model): ... seniority = db.Column(db.Enum(Seniority), nullable=True) ... 对于这个类,我用定义的架构类marshmallow Schema和EnumField从marshmallow_enum包: class …

1
为什么要在Django models.Manager中定义create_foo()而不是覆盖create()?
阅读Django文档后,建议Foo通过create_foo在管理器中定义模型来为命名模型创建自定义创建方法: class BookManager(models.Manager): def create_book(self, title): book = self.create(title=title) # do something with the book return book class Book(models.Model): title = models.CharField(max_length=100) objects = BookManager() book = Book.objects.create_book("Pride and Prejudice") 我的问题是,为什么前一个方法更喜欢简单地重写基类的create方法: class BookManager(models.Manager): def create(self, title): book = self.model(title=title) # do something with the book book.save() return book class Book(models.Model): …

4
在元素计数不等于1的组上过滤DataFrame
我正在使用具有以下结构的DataFrame: import pandas as pd df = pd.DataFrame({'group':[1,1,1,2,2,2,2,3,3,3], 'brand':['A','B','X','C','D','X','X','E','F','X']}) print(df) group brand 0 1 A 1 1 B 2 1 X 3 2 C 4 2 D 5 2 X 6 2 X 7 3 E 8 3 F 9 3 X 我的目标是仅查看与他们关联的品牌完全相同的群体X。由于组2具有两个等于brand的观察值X,因此应从结果DataFrame中将其滤除。 输出应如下所示: group brand 0 1 A 1 …

1
TypeError:len对于符号张量没有很好的定义。(activation_3 / Identity:0)请致电`x.shape`而不是`len(x)`以获得形状信息
我正在尝试在openAI体育馆的一场比赛中实现DQL模型。但这给了我以下错误。 TypeError:len对于符号张量没有很好的定义。(activation_3 / Identity:0)请致电,x.shape而不是len(x) 索取形状信息。 创建体育馆环境: ENV_NAME = 'CartPole-v0' env = gym.make(ENV_NAME) np.random.seed(123) env.seed(123) nb_actions = env.action_space.n 我的模型如下所示: model = Sequential() model.add(Flatten(input_shape=(1,) + env.observation_space.shape)) model.add(Dense(16)) model.add(Activation('relu')) model.add(Dense(nb_actions)) model.add(Activation('linear')) print(model.summary()) 通过keral-rl将模型拟合到DQN模型,如下所示: policy = EpsGreedyQPolicy() memory = SequentialMemory(limit=50000, window_length=1) dqn = DQNAgent(model=model, nb_actions=nb_actions, memory=memory, nb_steps_warmup=10, target_model_update=0.001, policy=policy) dqn.compile(Adam(lr=1e-3), metrics=['mse', 'mae']) dqn.fit(env, nb_steps=5000, …

3
对象是可枚举但不可索引的吗?
问题摘要和问题 我正在尝试查看对象内的一些数据,这些数据可以枚举但不能建立索引。我仍然对python不熟悉,但是我不知道这是怎么可能的。 如果可以枚举,为什么不能通过枚举相同的方式访问索引?如果没有,是否可以单独访问这些项目? 实际例子 import tensorflow_datasets as tfds train_validation_split = tfds.Split.TRAIN.subsplit([6, 4]) (train_data, validation_data), test_data = tfds.load( name="imdb_reviews", split=(train_validation_split, tfds.Split.TEST), as_supervised=True) 选取数据集的选择子集 foo = train_data.take(5) 我可以foo用枚举进行迭代: [In] for i, x in enumerate(foo): print(i) 产生预期的输出: 0 1 2 3 4 但是,当我尝试对其进行索引时,出现foo[0]此错误: --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-44-2acbea6d9862> in <module> …

1
如何在python中正确处理多个二进制文件?
我目前正在借助PycURL模块开发多线程下载器。我正在下载文件的一部分,然后将它们合并。 这些部分是从多个线程中分别下载的,它们以二进制模式写入临时文件,但是当我将它们合并到单个文件(它们以正确的顺序合并)时,校验和不匹配。 这仅在linux env中发生。相同的脚本在Windows env中可以完美地工作。 这是合并文件的代码(脚本的一部分): with open(filename,'wb') as outfile: print('Merging temp files ...') for tmpfile in self.tempfile_arr: with open(tmpfile, 'rb') as infile: shutil.copyfileobj(infile, outfile) print('Done!') 我也尝试过 write()method,但是它会导致相同的问题,并且大型文件将占用大量内存。 如果我cat将零件文件手动放入Linux中的单个文件,然后文件的校验和匹配,则问题出在python的文件合并中。 编辑: 这是我用来重现该问题的文件和校验和(sha256): 原始文件 哈希:158575ed12e705a624c3134ffe3138987c64d6a7298c5a81794ccf6866efd488 通过脚本合并的文件 哈希:c3e5a0404da480f36d37b65053732abe6d19034f60c3004a908b88d459db7d87 使用cat手动合并文件 哈希:158575ed12e705a624c3134ffe3138987c64d6a7298c5a81794ccf6866efd488 使用的命令: for i in /tmp/pycurl_*_{0..7}; do cat $i >> manually_merged.tar.gz; done 零件文件 -末尾编号,从0到7
10 python  pycurl 

2
熊猫:基于局部极小值最大值的数据之字形分割
我有一个时间序列数据。产生资料 date_rng = pd.date_range('2019-01-01', freq='s', periods=400) df = pd.DataFrame(np.random.lognormal(.005, .5,size=(len(date_rng), 3)), columns=['data1', 'data2', 'data3'], index= date_rng) s = df['data1'] 我想创建一条连接局部最大值和局部最小值之间的曲折线,它满足以下条件:|highest - lowest value|每条曲折线在y轴上必须超过上一条距离的百分比(例如20%)之字形线,以及预先设定的值k(例如1.2) 我可以使用以下代码找到本地极值: # Find peaks(max). peak_indexes = signal.argrelextrema(s.values, np.greater) peak_indexes = peak_indexes[0] # Find valleys(min). valley_indexes = signal.argrelextrema(s.values, np.less) valley_indexes = valley_indexes[0] # Merge peaks and valleys data …

1
pycharm无法使用python3.8连接到控制台
我不知道为什么;但由于python 3.8已发布;我无法运行pycharm控制台,它始终处于“正在连接”状态。 我对python 3.7没问题;因为控制台会立即打开。 在这里,您可以看到我已经尝试过几次运行控制台,但是即使我等了一天,我也知道。它不连接到控制台。但是,当我将解释器从python3.8更改为python3.7时,我打开的新控制台都在一秒钟之内就完成了设置。 错误: C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\pydev\_pydevd_bundle\pydevd_resolver.py:138: SyntaxWarning: "is not" with a literal. Did you mean "!="? if found.get(name) is not 1: Traceback (most recent call last): File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\pydev\pydevconsole.py", line 33, in <module> from _pydev_bundle.pydev_console_utils import BaseInterpreterInterface File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\pydev\_pydev_bundle\pydev_console_utils.py", line 11, in <module> from …

1
如何在Spyder 4上隐藏悬停工具提示
不知道在哪里问: 有没有办法在spyder中不打开帮助工具提示/弹出窗口/悬停窗口? 由于更新至4.0,因此在两个窗口之间切换时,该窗口不会关闭: 猜想这样的事情将在以后的更新中报告并删除,但现在我很乐意将其禁用 (使用64位Windows-10机器)

2
为什么不能更改对象实例的__class__属性?
class A(object): pass class B(A): pass o = object() a = A() b = B() 尽管可以更改a.__class__,但我不能这样做o.__class__(它会引发TypeError错误)。为什么? 例如: isinstance(a, A) # True isinstance(a, B) # False a.__class__ = B isinstance(a, A) # True isinstance(a, B) # True isinstance(o, object) # True isinstance(o, A) # False o.__class__ = A # This fails …

1
每10个时间段tensorflow.keras v2保存模型
我正在使用在tensorflow v2中定义为子模块的keras。我正在使用fit_generator()方法训练模型。我想每10个时间保存一次模型。我该如何实现? 在Keras(不是tf的子模块)中,我可以给出ModelCheckpoint(model_savepath,period=10)。但在TF V2,他们已经改变了这ModelCheckpoint(model_savepath, save_freq)地方save_freq可'epoch'在这种情况下,模型保存每个时间段。如果save_freq为整数,则在处理了许多样本后将保存模型。但我希望在10个时代之后。我该如何实现?

3
转换多个分类列
在我的数据集中,我想列举两个分类列。两列都包含国家,有些重叠(出现在两列中)。我想在同一国家的column1和column2中给出相同的数字。 我的数据看起来像: import pandas as pd d = {'col1': ['NL', 'BE', 'FR', 'BE'], 'col2': ['BE', 'NL', 'ES', 'ES']} df = pd.DataFrame(data=d) df 目前,我正在像这样转换数据: from sklearn.preprocessing import LabelEncoder df.apply(LabelEncoder().fit_transform) 但是,这在FR和ES之间没有区别。是否有另一种简单的方法可以得到以下输出? o = {'col1': [2,0,1,0], 'col2': [0,2,4,4]} output = pd.DataFrame(data=o) output

2
如何在不使用setup.py文件的情况下构建源分发?
具有以下封装结构 . ├── my_package │ └── __init__.py ├── setup.cfg └── setup.py 内容 setup.py from setuptools import setup setup() 内容 setup.cfg [metadata] name = my_package version = 0.1 [options] packages = find: 我可以my_package像这样构建轮子或源代码分布 pip wheel --no-deps -w dist . # generates file ./dist/my_package-0.1-py3-none-any.whl python setup.py sdist # generates file ./dist/my_package-0.1.tar.gz 但是据setuptools的维护者说,声明式构建配置是理想的选择,而使用命令式构建将成为代码的味道。因此,我们替换setup.py为pyproject.toml: …

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.