我今天遇到了这个问题(http://www.mcs.anl.gov/research/projects/mpi/www/www3/MPI_Send.html)
__PRE__
零计数通常有效意味着什么?这是否意味着它依赖于实现?
在python(使用numpy)中,我可以将数组广播为不同的形状:
>>> import numpy as np
>>> a = np.array([2,3,4])
>>> b = np.zeros((3,2))
>>> b[:,:] = np.zeros((3,2))
>>> b[:,:] = a[:,np.newaxis] #<-- np.newaxis allows `a` to be "broadcasted" to the same shape as b.
>>> b
array([[ 2., 2.],
[ 3., 3.],
[ 4., 4.]])
>>> c = np.zeros((2,3))
>>> c[:,:] = a[np.newaxis,:]
>>> c
array([[ 2., 3., 4.],
[ 2., 3., 4.]])
Run Code Online (Sandbox Code Playgroud)
有没有办法在fortran中达到同样的效果?我有一个子程序,希望2D传入一个数组 - 我想将我的1-D阵列"广播"到2-D,如上所述.由于它似乎很重要,我的2D数组确实有一个明确的界面.
作为旁注,我认为这个功能可能由reshape内在提供, - 像: …
我使用具有签名功能的库f(*args, **kwargs).我需要在kwargs参数中传递python dict,但是dict不包含关键字中的字符串
f(**{1: 2, 3: 4})
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: f() keywords must be strings
Run Code Online (Sandbox Code Playgroud)
如何在不编辑功能的情况下解决这个问题?
我可以捕获并转储一个异常(和相应的堆栈跟踪),这会导致程序崩溃而不执行以下操作:
try:
# whole program
except Execption as e:
dump(e)
raise
Run Code Online (Sandbox Code Playgroud)
有时外部库崩溃了,我想对Python死亡做出反应并记录它的原因.我不想阻止Exception崩溃程序,我只想要调试信息.
就像是:
signals.register('dying', callback)
def callback(context):
# dumping the exception and
# stack trace from here
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?
我正在处理一些COMMON广泛使用块的遗留代码,有时使用该SAVE语句.在查阅Fortran标准后,它说:
在
SAVE语句中以斜杠开头和后跟的公共块名称的出现具有指定该公共块中的所有实体的效果.
在什么情况下将变量放在公共块中并不意味着SAVE什么?由于变量必须可以在包含该公共块的任何其他程序单元中访问,因此它怎么可能不被SAVE编辑?
我有一个字符串:
" This is such an nice artwork"
Run Code Online (Sandbox Code Playgroud)
我有一个tag_list ["art","paint"]
基本上,我想写一个函数,接受这个字符串和taglist作为输入,并返回单词"artwork",因为艺术作品包含在taglist中的单词art.
我如何最有效地做到这一点?
我希望这在速度方面是有效的
def prefix_match(string, taglist):
# do something here
return word_in string
Run Code Online (Sandbox Code Playgroud) 我想拿两本字典并打印出它们的差异.此差异应包括键和值的差异.我已经创建了这个小片段,以使用unittest模块中的内置代码实现结果.然而,这是一个讨厌的黑客,因为我必须子类unittest.TestCase并提供一种runtest()方法来工作.此外,此代码将导致应用程序出错,因为它会AssertError在存在差异时引发.我真正想要的就是打印差异.
import unittest
class tmp(unittest.TestCase):
def __init__(self):
# Show full diff of objects (dicts could be HUGE and output truncated)
self.maxDiff = None
def runTest():
pass
_ = tmp()
_.assertDictEqual(d1, d2)
Run Code Online (Sandbox Code Playgroud)
我希望使用该difflib模块,但它看起来只适用于字符串.有没有办法解决这个问题并仍在使用difflib?
这很好用:
program main
integer,parameter,dimension(3) :: x = [1,2,3]
print*,x
end program main
Run Code Online (Sandbox Code Playgroud)
就像这样:
program main
integer,parameter,dimension(3) :: x = (/1,2,3/)
print*,x
end program main
Run Code Online (Sandbox Code Playgroud)
是否有理由认为一种形式应优先于另一种形式(例如向后兼容性)?
为什么插入新轴会使数据不连续?
>>> a = np.arange(12).reshape(3,4,order='F')
>>> a
array([[ 0, 3, 6, 9],
[ 1, 4, 7, 10],
[ 2, 5, 8, 11]])
>>> a.reshape((3,1,4)).flags
C_CONTIGUOUS : False
F_CONTIGUOUS : False
OWNDATA : False
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : False
>>> a[np.newaxis,...].flags
C_CONTIGUOUS : False
F_CONTIGUOUS : False
OWNDATA : False
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : False
>>> a.flags
C_CONTIGUOUS : False
F_CONTIGUOUS : True
OWNDATA : False
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY …Run Code Online (Sandbox Code Playgroud) 我有一组命名空间包,旨在在 python3.6 环境中运行。
它们各自的设置如下:
if sys.version_info < (3, 6):
print("Python versions < 3.6 unsupported", file=sys.stderr)
sys.exit(1)
setup(
name="mynamespace.subpackage",
version=VERSION,
packages=[
"mynamespace.subpackage",
],
package_dir={"": "src"},
package_data={
"": [],
},
include_package_data=True,
zip_safe=False,
install_requires=[
"mynamespace.core", # May have explicit dependencies that are not cyclic
],
namespace_packages=["mynamespace"],
...
)
Run Code Online (Sandbox Code Playgroud)
所有子包都可以很好地并排安装。
当我想通过 获得强大的类型检查时,问题就出现了mypy。 在源文件上运行时mypy无法找到子包mynamespace.coremynamespace.subpackage子包(例如),这意味着我无法跨子包边界进行可靠的类型检查。
这似乎是一个已知问题: https ://github.com/python/mypy/issues/1645
Guido 提到解决方法是“添加虚拟文件__init__.py或__init__.pyi文件”,但他并没有真正详细说明,事实证明这对我来说并不像我希望的那么明显。将这些文件添加到本地存储库允许 mypy 按预期运行本地存储库,我不知道如何访问同级命名空间包中的类型信息。
我的问题是:我将如何修改mynamespace.core- 以便在安装时mypy能够在其他模块中获取它的类型信息?