Questions tagged «python»

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


9
SQLAlchemy:级联删除
我必须缺少SQLAlchemy的级联选项的琐碎内容,因为我无法获得简单的级联删除来正确操作-如果删除了父元素,则子级将保留并带有null外键。 我在这里放了一个简洁的测试用例: from sqlalchemy import Column, Integer, ForeignKey from sqlalchemy.orm import relationship from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class Parent(Base): __tablename__ = "parent" id = Column(Integer, primary_key = True) class Child(Base): __tablename__ = "child" id = Column(Integer, primary_key = True) parentid …


9
在pandas数据框中完全打印很长的字符串
我正在努力看似非常简单的事情。我有一个包含非常长字符串的pandas数据框。 df = pd.DataFrame({'one' : ['one', 'two', 'This is very long string very long string very long string veryvery long string']}) 现在,当我尝试打印相同的字符串时,我看不到完整的字符串,而只看到了字符串的一部分。 我尝试了以下选项 使用 print(df.iloc[2]) 使用 to_html 使用 to_string 其中一个stackoverflow答案建议通过使用pandas display选项来增加列宽,但该方法也不起作用。 我也没有得到如何set_printoptions帮助我。 任何想法表示赞赏。看起来很简单,但无法获得!
116 python  string  pandas  options 

9
批量归一化和辍学订购?
最初的问题是关于TensorFlow实现的。但是,答案是针对一般的实现。这个通用答案也是TensorFlow的正确答案。 在TensorFlow中使用批量归一化和辍学时(特别是使用contrib.layers),我需要担心订购吗? 如果我在退出后立即使用批处理规范化,则可能会出现问题。例如,如果批量归一化训练中的偏移量训练输出的比例尺数字较大,但是将相同的偏移量应用到较小的比例尺数字(由于补偿了更多的输出),而在测试过程中没有丢失,则轮班可能关闭。TensorFlow批处理规范化层会自动对此进行补偿吗?还是由于某种原因我不会想念这件事吗? 另外,将两者一起使用时还有其他陷阱吗?例如,假设我使用他们以正确的顺序在问候上述(假设有是一个正确的顺序),可以存在与使用分批正常化和漏失在多个连续层烦恼?我没有立即看到问题,但是我可能会丢失一些东西。 非常感谢! 更新: 实验测试似乎表明排序确实很重要。我在相同的网络上运行了两次,但批次标准和退出均相反。当辍学在批处理规范之前时,验证损失似乎会随着培训损失的减少而增加。在另一种情况下,它们都下降了。但就我而言,运动缓慢,因此在接受更多培训后情况可能会发生变化,这只是一次测试。一个更加明确和明智的答案仍然会受到赞赏。

14
如何取消嵌套(爆炸)pandas DataFrame中的列?
我有以下DataFrame,其中列之一是对象(列表类型单元格): df=pd.DataFrame({'A':[1,2],'B':[[1,2],[1,2]]}) df Out[458]: A B 0 1 [1, 2] 1 2 [1, 2] 我的预期输出是: A B 0 1 1 1 1 2 3 2 1 4 2 2 我应该怎么做才能做到这一点? 相关问题 熊猫:当单元格内容为列表时,为列表中的每个元素创建一行 好问题和答案,但只与列表处理一列(在我的答案自DEF功能将多个列的工作,也是公认的答案是使用最耗时的apply,不推荐,检查的详细信息我应该什么时候曾经想在我的代码中使用pandas apply()吗?)
116 python  pandas  dataframe 

6
无法分配具有形状和数据类型的数组
我在Ubuntu 18上在numpy中分配大型数组时遇到了一个问题,而在MacOS上却没有遇到同样的问题。 我想一个numpy的阵列形状分配内存(156816, 36, 53806) 使用 np.zeros((156816, 36, 53806), dtype='uint8') 当我在Ubuntu OS上遇到错误时 >>> import numpy as np >>> np.zeros((156816, 36, 53806), dtype='uint8') Traceback (most recent call last): File "<stdin>", line 1, in <module> numpy.core._exceptions.MemoryError: Unable to allocate array with shape (156816, 36, 53806) and data type uint8 我没有在MacOS上得到它: >>> import …


4
Tensorflow大步向前
我想了解的进步在tf.nn.avg_pool,tf.nn.max_pool,tf.nn.conv2d说法。 该文件反复说 步幅:长度大于等于4的整数的列表。输入张量每个维度的滑动窗口的步幅。 我的问题是: 4个以上的整数分别代表什么? 对于卷积网络,为什么必须要有stride [0] = strides [3] = 1? 在此示例中,我们看到了tf.reshape(_X,shape=[-1, 28, 28, 1])。为什么是-1? 遗憾的是,文档中使用-1进行重塑的示例并不能很好地解释这种情况。

8
如何将多维数组写入文本文件?
在另一个问题中,如果我可以提供遇到问题的阵列,其他用户会提供一些帮助。但是,我什至无法完成基本的I / O任务,例如将数组写入文件。 谁能解释我需要向文件写入4x11x14 numpy数组的哪种循环? 该数组由四个11 x 14数组组成,因此我应该使用漂亮的换行符对其进行格式化,以使文件读取更加容易。 编辑:所以我已经尝试了numpy.savetxt函数。奇怪的是,它给出了以下错误: TypeError: float argument required, not numpy.ndarray 我认为这是因为函数不适用于多维数组?我希望在一个文件中找到任何解决方案吗?
115 python  file-io  numpy 

14
在python中从单元测试输出数据
如果我使用python(使用unittest模块)编写单元测试,是否可以从失败的测试中输出数据,所以我可以对其进行检查以帮助推断出导致错误的原因?我知道创建自定义消息的能力,该消息可以包含一些信息,但是有时您可能会处理更复杂的数据,这些数据无法轻松地表示为字符串。 例如,假设您有一个Foo类,并且正在使用名为testdata的列表中的数据测试方法栏: class TestBar(unittest.TestCase): def runTest(self): for t1, t2 in testdata: f = Foo(t1) self.assertEqual(f.bar(t2), 2) 如果测试失败,则可能要输出t1,t2和/或f,以查看为什么此特定数据导致失败。通过输出,我的意思是说,在运行测试之后,可以像访问任何其他变量一样访问这些变量。

4
如何引发ValueError?
我有这段代码可以找到字符串中特定字符的最大索引,但是ValueError当字符串中未出现指定字符时,我希望它提高a值。 所以像这样: contains('bababa', 'k') 会导致: → ValueError: could not find k in bababa 我怎样才能做到这一点? 这是我的函数的当前代码: def contains(string,char): list = [] for i in range(0,len(string)): if string[i] == char: list = list + [i] return list[-1]
115 python  string 

2
scikit-learn中的class_weight参数如何工作?
我在理解class_weightscikit-learn的Logistic回归中的参数如何运行时遇到很多麻烦。 情况 我想使用逻辑回归对非常不平衡的数据集进行二进制分类。这些类别分别标记为0(负)和1(正),观察到的数据比例约为19:1,大多数样本的结果均为负。 第一次尝试:手动准备训练数据 我将我拥有的数据分为不相交的数据集进行训练和测试(大约80/20)。然后,我手工对训练数据进行了随机采样,得到的训练数据比例与19:1不同。从2:1-> 16:1。 然后,我对这些不同的训练数据子集进行了逻辑回归训练,并根据不同的训练比例绘制了召回率(= TP /(TP + FN))。当然,召回率是根据不连续的TEST样本(观察到的比例为19:1)计算的。注意,尽管我在不同的训练数据上训练了不同的模型,但我在相同(不相交)的测试数据上计算了所有模型的召回率。 结果符合预期:以2:1的训练比例召回率约为60%,到16:1时召回率很快下降。比例为2:1-> 6:1,召回率在5%以上。 第二次尝试:网格搜索 接下来,我想测试不同的正则化参数,因此我使用了GridSearchCV并制作了一个包含C参数值和参数值的网格class_weight。要将我的n:m否定:肯定的训练样本比例转换成class_weight我的词典语言,我认为我只是指定了几个字典,如下所示: { 0:0.67, 1:0.33 } #expected 2:1 { 0:0.75, 1:0.25 } #expected 3:1 { 0:0.8, 1:0.2 } #expected 4:1 并且我还包括None和auto。 这次的结果是完全错误的。class_weight除了的每个值,我所有的召回都很小(<0.05)auto。因此,我只能假设我对如何设置class_weight字典的理解是错误的。有趣的是,class_weight对于的所有值,网格搜索中“自动” 的值约为59%C,我猜想它与1:1平衡吗? 我的问题 您如何正确使用class_weight训练数据与实际提供的数据取得不同的平衡?具体来说,我传递给哪个字典class_weight来使用n:m比例的负数:正数训练样本? 如果您将各种class_weight字典传递给GridSearchCV,则在交叉验证期间,它将根据字典重新平衡训练折叠数据,但使用真实给定的样本比例来计算我在测试折叠上的得分函数吗?这很关键,因为任何度量标准仅对来自观察到的比例的数据有用。 就比例而言,auto价值是class_weight什么?我阅读了文档,并假设“与数据频率成反比地平衡数据”只是意味着将其设为1:1。这样对吗?如果没有,有人可以澄清吗?


14
python print end =''
我有这个需要运行的python脚本 gdal_retile.py 但是我在这条线上有一个例外: if Verbose: print("Building internam Index for %d tile(s) ..." % len(inputTiles), end=' ') 将end=''是无效的语法。我很好奇为什么以及作者可能打算做什么。 如果您还没猜到,我是python的新手。 我认为问题的根本原因是这些导入失败,因此必须包含此导入 from __future__ import print_function try: from osgeo import gdal from osgeo import ogr from osgeo import osr from osgeo.gdalconst import * except: import gdal import ogr import osr from gdalconst import …
115 python 

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.