小编a_g*_*est的帖子

什么是“软关键词”?

根据keyword模块的文档,Python 3.9 中添加了两个新成员:

  • issoftkeyword
  • softkwlist

然而,他们的文档并未透露任何有关其目的的信息。新功能文章中甚至没有提到此更改,通常所有 API 更改都记录在文档中。深入挖掘源代码最终会导致这个拉取请求,其中提到“这本质上是一个内部工具”“软关键字仍未使用”。那么 Python 的 soft 关键字的目的是什么?

python python-3.9

102
推荐指数
3
解决办法
8226
查看次数

如何在 pyproject.toml 的可编辑模式下使用 pip 安装包?

当一个项目仅通过via pyproject.toml(即没有文件)指定时setup.{py,cfg},如何以可编辑模式通过via pip(即python -m pip install -e .)安装它?

我尝试了setuptoolspoetry构建系统,但都不起作用:

[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
Run Code Online (Sandbox Code Playgroud)
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
Run Code Online (Sandbox Code Playgroud)

我在两个构建系统上都遇到相同的错误:

[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
Run Code Online (Sandbox Code Playgroud)

我在conda环境中使用它,以下是我的setuptools和版本pip

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
Run Code Online (Sandbox Code Playgroud)

python pip setuptools python-poetry pyproject.toml

96
推荐指数
3
解决办法
5万
查看次数

Bootstrap - 对齐按钮到卡的底部

我正在偷看使用card-deckcard类的一个Bootstrap示例(定价示例).我想知道如果其中一个列表的项目少于其他列表,那么如何修复按钮对齐.

对齐问题

我希望所有按钮都垂直对齐(在每张卡的底部),但我无法找到一种方法.我尝试设置.align-bottom类以及将按钮包装进去<div class="align-text-bottom">.我也从这个问题中尝试了几个关于添加空间的建议,但是仍然没有成功(间距也应该是可变的,以便它填满列表中的剩余空间).

包装<div class="card-footer bg-white">不会产生预期的结果,因为它没有对齐卡底部的按钮,并且在它周围创建了某种边框.

有没有人有想法?

编辑:这是一个类似于问题的jsfiddle.

html css twitter-bootstrap bootstrap-4

45
推荐指数
6
解决办法
4万
查看次数

如何将参数添加到WebRequest中?

我需要从webservice调用一个方法,所以我写了这段代码:

 private string urlPath = "http://xxx.xxx.xxx/manager/";
 string request = urlPath + "index.php/org/get_org_form";
 WebRequest webRequest = WebRequest.Create(request);
 webRequest.Method = "POST";
 webRequest.ContentType = "application/x-www-form-urlencoded";
 webRequest.
 webRequest.ContentLength = 0;
 WebResponse webResponse = webRequest.GetResponse();
Run Code Online (Sandbox Code Playgroud)

但是这种方法需要一些参数,如下所示:

发布数据:

_username:'API USER',         // api authentication username

_password:'API PASSWORD',     // api authentication password
Run Code Online (Sandbox Code Playgroud)

如何将这些参数添加到此Webrequest中?

提前致谢.

.net c# web-services httpwebrequest

41
推荐指数
3
解决办法
16万
查看次数

使用PyInstaller时没有命名的模块

我尝试使用PyInstaller在Windows 7下编译Python项目.该项目工作正常,没有问题,但是当我尝试编译它时,结果不起作用.虽然在编译期间我没有收到任何警告warnmain.txt,但build目录中的文件中有许多警告:warnmain.txt

我真的不明白那些警告,例如"没有名为numpy.pi的模块",因为numpy.pi它不是模块而是数字.我从未尝试过导入numpy.pi.我做进口numpymatplotlib明确.另外我正在使用PyQt4.我认为错误可能与这些库有关.

但是我能够编译一个成功使用numpy的简单脚本:

import sys
from PyQt4 import QtGui, QtCore
import numpy as np

class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)

        self.pb = QtGui.QPushButton(str(np.pi), self)

app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

这里成功意味着创建的可执行文件实际上显示了所需的输出.但是,还会warnmain.txt创建一个文件,其中包含与之前完全相同的"警告".因此,我认为编译我的实际项目没有取得任何成功的事实不是(或至少不仅仅)与这些警告相关.但那么还有什么可能是错误呢?编译期间唯一的输出是'INFO',并且没有一个是否定的声明.

我没有指定一个额外的钩子目录,但钩子使用默认目录向下,只要我可以从编译输出读取,例如hook-matplotlib执行.我看不到任何钩子,numpy因为我的小例子脚本也没有,但这个有用.我在我的文件中使用了以下导入(不是全部在同一个但在不同的文件中):

import numpy as np
import matplotlib.pyplot as ppl
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
from PyQt4 import QtGui, QtCore
import json …
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib pyinstaller pyqt4

25
推荐指数
5
解决办法
4万
查看次数

导入__init__.py和`import as`语句

我遇到了在包的模块中导入__init__.py和使用import as绝对导入的问题.

我的项目有一个子包,在其中__init__.py我将一个类从一个模块"提升"到带有from import as语句的子包级别.该模块使用绝对导入从该子包导入其他模块.我收到这个错误AttributeError: 'module' object has no attribute 'subpkg'.

结构:

pkg/
??? __init__.py
??? subpkg
?   ??? __init__.py
?   ??? one.py
?   ??? two_longname.py
??? tst.py
Run Code Online (Sandbox Code Playgroud)

pkg/__ init__.py为空.

pkg/subpkg/__ init__.py:

from pkg.subpkg.one import One
Run Code Online (Sandbox Code Playgroud)

pkg/subpkg/one.py:

import pkg.subpkg.two_longname as two

class One(two.Two):
    pass
Run Code Online (Sandbox Code Playgroud)

pkg/subpkg/two_longname.py:

class Two:
    pass
Run Code Online (Sandbox Code Playgroud)

pkg/tst.py:

from pkg.subpkg import One

print(One)
Run Code Online (Sandbox Code Playgroud)

输出:

$ python3.4 -m pkg.tst
Traceback (most recent …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

根据连续项目的相似性对双面项目列表进行排序

我正在寻找某种"多米诺排序"算法,该算法根据后续项目的"切线"边的相似性对双面项目列表进行排序.

假设以下列表中的项目由2元组表示:

>>> items
[(0.72, 0.12),
 (0.11, 0.67),
 (0.74, 0.65),
 (0.32, 0.52),
 (0.82, 0.43),
 (0.94, 0.64),
 (0.39, 0.95),
 (0.01, 0.72),
 (0.49, 0.41),
 (0.27, 0.60)]
Run Code Online (Sandbox Code Playgroud)

目标是对该列表进行排序,使得每两个后续项目(损失)的切线末端的平方差的总和最小:

>>> loss = sum(
...     (items[i][1] - items[i+1][0])**2
...     for i in range(len(items)-1)
... )
Run Code Online (Sandbox Code Playgroud)

对于上面的示例,这可以通过仅处理所有可能的排列来计算,但是对于具有更多项的列表,这变得很快变得不可行(O(n!)).

如下所示,逐步选择最佳匹配的方法

def compute_loss(items):
    return sum((items[i][1] - items[i+1][0])**2 for i in range(len(items)-1))


def domino_sort(items):
    best_attempt = items
    best_score = compute_loss(best_attempt)
    for i in range(len(items)):
        copy = [x for x in items]
        attempt = [copy.pop(i)]
        for j in range(len(copy)): …
Run Code Online (Sandbox Code Playgroud)

python sorting algorithm

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

torch.nn.sequential 与多个 torch.nn.linear 的组合

我正在尝试在 pytorch 中创建一个多层神经网络类。我想知道以下两段代码是否创建了相同的网络。

模型 1 与 nn.Linear

class TestModel(nn.Module):
def __init__(self, input_dim, hidden_dim, output_dim):
    super(TestModel, self).__init__()
    self.fc1 = nn.Linear(input_dim,hidden_dim)
    self.fc2 = nn.Linear(hidden_dim,output_dim)

def forward(self, x):
    x = nn.functional.relu(self.fc1(x))
    x = nn.functional.softmax(self.fc2(x))
    return x       
Run Code Online (Sandbox Code Playgroud)

模型 2 与 nn.Sequential

class TestModel2(nn.Module):
def __init__(self, input, hidden, output):
    super(TestModel2, self).__init__()
    self.seq = nn.Sequential(
               nn.Linear(input_dim,hidden_dim),
               nn.ReLU(),
               nn.Linear(hidden_dim,output_dim),
               nn.Softmax()
               )

def forward(self, x):
    return self.seq(x)
Run Code Online (Sandbox Code Playgroud)

python pytorch

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

自动编码器的正规化太强(Keras自动编码器教程代码)

我正在使用本教程关于autoencoders:https://blog.keras.io/building-autoencoders-in-keras.html

所有代码都正常工作,但是当我为正则化参数设置10e-5时性能非常糟糕(结果很模糊),这是教程代码中定义的参数.实际上,我需要将正则化减少到10e-8以获得正确的输出.

我的问题如下:为什么结果与教程有如此不同?数据是相同的,参数是相同的,我没想到会有很大的差异.

我怀疑从2016年5月14日起Keras功能的默认行为已经改变(在所有情况下都执行自动批量标准化?).

输出:

使用10e-5正则化链接到模糊图像输出

用10e-5正则化(模糊); 50个时期后val_loss为0.2967,100个时期后为0.2774

使用10e-8正则化:50个历元后的val_loss为0.1080,100个历元后为0.1009.

没有正则化:50个时期后val_loss为0.1018,100个时期后为0.0944.

完整代码(供参考):

# Source: https://blog.keras.io/building-autoencoders-in-keras.html
import numpy as np
np.random.seed(2713)

from keras.layers import Input, Dense
from keras.models import Model
from keras import regularizers

encoding_dim = 32

input_img = Input(shape=(784,))
# add a Dense layer with a L1 activity regularizer
encoded = Dense(encoding_dim, activation='relu',
                activity_regularizer=regularizers.l1(10e-5))(input_img)
decoded = Dense(784, activation='sigmoid')(encoded)

autoencoder = Model(input_img, decoded)

# this model maps an input to its encoded representation
encoder = Model(input_img, encoded)

# create …
Run Code Online (Sandbox Code Playgroud)

python regularized autoencoder keras

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

展开 DataFrame 的索引级别

我有一个带有多索引的数据框,其中一个级别的值代表该级别的所有其他值。例如(下面的代码示例):

         D
A B   C   
x a   y  0
  b   y  1
  all z  2
Run Code Online (Sandbox Code Playgroud)

all是表示该级别的所有其他值的简写,以便数据框实际表示:

       D
A B C   
x a y  0
  b y  1
  a z  2
  b z  2
Run Code Online (Sandbox Code Playgroud)

这也是我想获得的形式。对于包含all在该索引级别中的每一行,该行针对索引级别中的每个其他值进行复制。如果它是一列,我可以用all其他值的列表替换每次出现的,然后使用DataFrame.explode.

因此,我考虑重置该索引级别,用all其他值列表替换所有出现的,然后explode将该列替换为索引:

level_values = sorted(set(df.index.unique('B')) - {'all'})
tmp = df.reset_index('B')
mask = df.index.get_level_values('B') == 'all'
col_index = list(tmp.columns).index('B')
for i in np.argwhere(mask).ravel():
    tmp.iat[i, col_index] = level_values
result = tmp.explode('B').set_index('B', append=True)
Run Code Online (Sandbox Code Playgroud)

然而,这似乎效率很低,代码也不是很清楚。此外,索引级别现在的顺序错误(我的实际数据框有三个以上的索引级别,因此我无法对其swaplevel进行重新排序)。

所以我想知道是否有更简洁的方法来分解这些all …

python pandas

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