我使用 Python 2.7 和 py2exe,最近我下载了 gui2exe 最新版本 (5.3)。但是当我尝试执行该gui2exe.py文件时,它给了我一个错误:
AttributeError: 'module' object has no attribute 'Popen'
Run Code Online (Sandbox Code Playgroud)
我研究了很多,但从未得到任何解决方案。
请帮忙。
我是PyTables的新手,并实现了一些从Pytables中的表中插入和检索数据的基本技术.但是,我不确定如何在现有的PyTables表中插入数据,因为我在教程中读取/获取的所有内容都是创建一个新表(使用h5file.createTable()方法).这是教程有关将数据插入从头创建的PytTables表的基本代码:
h5file = openFile("tutorial1.h5", mode = "w", title = "Test file")
group = h5file.createGroup("/", 'detector', 'Detector information')
table = h5file.createTable(group, 'readout', Particle, "Readout example")
for i in xrange(10):
particle['name'] = 'Particle: %6d' % (i)
particle['TDCcount'] = i % 256
particle['ADCcount'] = (i * 256) % (1 << 16)
particle['grid_i'] = i
particle['grid_j'] = 10 - i
particle['pressure'] = float(i*i)
particle['energy'] = float(particle['pressure'] ** 4)
particle['idnumber'] = i * (2 ** 34)
# Insert a new particle …Run Code Online (Sandbox Code Playgroud) 假设以下结构:
class SetupTestParam(object):
def setup_method(self, method):
self.foo = bar()
@pytest.fixture
def some_fixture():
self.baz = 'foobar'
Run Code Online (Sandbox Code Playgroud)
我SetupTestParam用作测试类的父类。
class TestSomething(SetupTestParam):
def test_a_lot(self, some_fixture):
with self.baz as magic:
with magic.fooz as more_magic:
blah = more_magic.much_more_magic() # repetative bleh
... # not repetative code here
assert spam == 'something cool'
Run Code Online (Sandbox Code Playgroud)
现在,编写测试变得重复(使用语句),我想编写一个装饰器来减少代码行数。但是pytest和函数签名有问题。
我发现了应该有帮助的图书馆,但我无法让它工作。
我classmethod在SetupTestParam课堂上做了一个。
@classmethod
@decorator.decorator
def this_is_decorator(cls, f):
def wrapper(self, *args, **kw):
with self.baz as magic:
with magic.fooz as more_magic:
blah = more_magic.much_more_magic() # repetative bleh …Run Code Online (Sandbox Code Playgroud) 我有一个基本的价值表:
import pandas as pd
import numpy as np
test = pd.read_csv('mean_test.csv')
test.replace('n/a',np.nan)
test
value1 value2 value3
1 9 5
5 NaN 4
9 55 NaN
NaN 4 9
Run Code Online (Sandbox Code Playgroud)
我想计算三个值的平均值,忽略NaN,所以对于第二行,它将是(5 + 4)/ 2.因此我不能使用.replace函数在NaN的位置放置零.我已经搜索了其他一些问题,但找不到任何涵盖此问题的内容.我错过了一些明显的东西吗
Python中是否有一个函数来获取列表中两个或多个值之间的差异?那么,在这两个列表中:
list1 = [1, 5, 3, 7]
list2 = [4, 2, 6, 4]
Run Code Online (Sandbox Code Playgroud)
我需要计算list1和list2中每个值之间的差异.
for i in list1:
for ii in list2:
print i -ii
Run Code Online (Sandbox Code Playgroud)
这给出了负值,但我希望两个列表的值之间的减法仅从最高值到最低值,以便不获得负值.
对于上面的列表,我希望输出为[3, 3, 3, 3].
谢谢.
所以,我正在涉足等离子体模拟的世界。现在,虽然我知道顶级模拟是用 Fortran 编写的,并且具有超内存效率的子例程和专用代码,但我希望只运行一些低级模拟。
我的问题是,在时变环境(好吧,时间步进)中模拟大量粒子时,跟踪所有数据是一个技巧。我之前使用过多维数组——使用粒子的列号和属性的行号,但是这感觉很笨拙。然而,它似乎执行得更快。
我最近尝试定义我自己的类,但是作为一个 Python 新手,我可能以一种非常低效的方式做到了。对于 3 维中的每个粒子,我需要能够存储粒子的位置、速度和力(一旦代码变得更复杂,就有可能添加更多变量)。使用我对类的了解,我定义了一个particle对象(我认为),它使我的代码更易于阅读和遵循:
# Define Particle as a class
class particle():
def __init__(self, index=0, pos=np.array([0, 0, 0]), vel=np.array([0,0,0]),
F=np.array([0, 0, 0])):
self.index = index # Particle index (identifier)
self.pos = pos # Position 3-vector
self.vel = vel # Velocity 3-vector
self.F = F # Net force 3-vector (at particle)
Run Code Online (Sandbox Code Playgroud)
因此,我可以轻松地初始化包含大量这些对象的数组,并以相当简单的方式修改每个值。然而,正如我所提到的,这对于仅涉及少数粒子的模拟运行速度较慢。我将使用我的代码将其与纯粹面向矩阵的方法进行比较,以查看哪种方法在大型模拟中的扩展性更好。
我想我的问题是:以这种方式定义“粒子”是最有效的吗?或者是否有更高效的 CPU/内存方式来定义这样的对象。我想保留它的方法能力(即particle[i].pos = [1,2,3]或particle[2].vx[1] = 3),以便我可以为每个粒子设置值,并将它们传递给函数。请记住,我是 Python 新手,所以我可能不会在大型复杂代码上取得巨大成功。
如何使用数据框中的索引而不是其名称在代码中调用列。
例如,我有数据帧df的列a,b,c
除了调用之外df['a'],我可以使用其列索引来调用它df[1]吗?
我使用Jupyter Notebook编写一个小程序。因此,我想将一些单元格写入.py文件。
我用这种魔法%%writefile -a myfile.py。它可以工作,但是问题是内容没有新行添加。因此,我必须myfile.py在运行单元格后手动向其中添加换行符。
如何避免这个问题?
我正在使用Python 3.6。
我正在尝试这样做:
import numpy as np
def run_11(x):
return x+1
kk = np.arange(1, 17)
for i in range (kk):
ind = run_11(i)
print (i)
print (ind)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
类型错误:只有整数标量数组可以转换为标量索引
我不明白为什么以及如何解决它。任何建议将不胜感激
我有一些腌制格式的数据,其中包含以下对象的实例:
Point = namedtuple('Point', ['x',])
Run Code Online (Sandbox Code Playgroud)
现在我想扩展 Point 对象以添加另一个变量“y”,但也要保持它与我已经腌制的数据兼容。
以下是我尝试过的,但似乎失败了。我还尝试通过在创建 Point 对象时将 y 参数设置为可选来使用代码来创建 Point 类,但这效果不佳。关于如何进行的任何想法?
from collections import namedtuple
Point = namedtuple('Point', ['x'])
i = Point(1)
import cPickle
pick=cPickle.dumps(i)
Point = namedtuple('Point', ['x', 'y'])
cPickle.loads(pick)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 22, in __repr__
TypeError: not enough arguments for format string
Run Code Online (Sandbox Code Playgroud) python ×10
python-2.7 ×3
pandas ×2
python-3.x ×2
arrays ×1
class ×1
dataframe ×1
decorator ×1
jupyter ×1
list ×1
namedtuple ×1
pickle ×1
py2exe ×1
pytables ×1
pytest ×1
simulation ×1
types ×1