小编Max*_*6hr的帖子

Python:如何解开循环数据以消除不连续性?

我有圆形数据的网格,例如,该数据是由它的角度从给定0?。在此数据中,我还有另一个较小的网格。

可能看起来像这样:

在此处输入图片说明

我想要做的是在红点上插入黑色数据。因此,我正在使用scipy.interpolate.griddata。这将给我以下结果:

在此处输入图片说明

如您所见,当角度从“几乎0” 更改为“几乎” 时,将出现不连续性?

为了消除这种情况,我尝试在插值之前解开数据。根据此答案(此处)。我得到了这个(更好)的结果,但是令人惊讶的是,右边有一个我不理解的新矛盾。

在此处输入图片说明

所以我的问题是:如何使用np.unwrap连续插值?还是有更好的方法呢?

这是要重现的代码:

import numpy as np
from matplotlib import pyplot as plt
from scipy.interpolate import griddata

ax = plt.subplot()
ax.set_aspect(1)

# Simulate some given data.
x, y = np.meshgrid(np.linspace(-10, 10, 20), np.linspace(-10, 10, 20))
phi = np.arctan2(y, x) % (2 * np.pi)
data = np.arctan2(np.cos(phi), np.sin(phi)) % np.pi

# Plot data.
u = np.cos(data)
v = np.sin(data)
ax.quiver(x, y, …
Run Code Online (Sandbox Code Playgroud)

python grid interpolation numpy word-wrap

5
推荐指数
1
解决办法
172
查看次数

Python:字符串格式化程序以获得带下划线的标题

为了构建我的控制台输出,我想打印一些信息,并且我想从带下划线的标题开始。但是如何在不创建额外变量的情况下很好地做到这一点呢?

现在我这样做:

print("{:s}\n{:s}\n".format("This is an underlined headline.", len("This is an underlined headline.") * "-"))
Run Code Online (Sandbox Code Playgroud)

是什么给了我想要的输出:

This is an underlined headline.
-------------------------------
Run Code Online (Sandbox Code Playgroud)

但该代码很糟糕。有没有更好的格式字符串来实现这一点?

print("{0:s}\n?????\n".format("This is an underlined headline.", "-"))
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

python printing string format python-3.7

4
推荐指数
1
解决办法
2万
查看次数

动态改变wx.TextCtrl的大小

我有 wx.TextCtrl 的问题。我只想设置控制框的大小,但我想动态地进行。这无论出于任何原因都不起作用。

这里有我的源代码。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import wx

class Test(wx.Frame):

def __init__(self, parent):
    super().__init__(parent)

    # Panel
    self.panel = wx.Panel(self)

    # Boxes
    self.numbers = wx.StaticBox(self.panel, wx.ID_ANY, "Numbers")

    # Elements
    self.stN1 = wx.StaticText(self.numbers, wx.ID_ANY, "Number 1:")
    self.tcN1 = wx.TextCtrl(self.numbers, wx.ID_ANY, style=wx.TE_CENTER)
    self.tcN1.SetSize(wx.Size(36, 20))

    self.stN2 = wx.StaticText(self.numbers, wx.ID_ANY, "Number 2:")
    self.tcN2 = wx.TextCtrl(self.numbers, wx.ID_ANY, size=wx.Size(36, 20), style=wx.TE_CENTER)

    # Sizers  
    self.szTop = wx.BoxSizer(wx.VERTICAL)
    self.szNumbers = wx.StaticBoxSizer(self.numbers, wx.VERTICAL)
    self.szN1 = wx.BoxSizer(wx.HORIZONTAL)
    self.szN2 = wx.BoxSizer(wx.HORIZONTAL)

    self.szN1.Add(self.stN1, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) …
Run Code Online (Sandbox Code Playgroud)

python wxpython resize textctrl wx.textctrl

2
推荐指数
1
解决办法
1698
查看次数

Python:将列表元素设置为字典值

简短的问题和可能的简短回答,但我不明白^^

d = {'a' : 0, 'b' : 0, 'c' : 0, 'd' : 0}
l = [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

我想将列表值设置为字典,以便

d = {'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4}
Run Code Online (Sandbox Code Playgroud)

当然

d['a'], d['b'], d['c'], d['d'] = l
Run Code Online (Sandbox Code Playgroud)

会成功,但这不是正确的方法。如果我有 50 个值怎么办......一个可以压缩d并且l也能正常工作的循环。

但是有一些短的东西d.values = l,不是吗?

感谢您的帮助!:)

编辑:我使用的是 Python 3.7,所以字典是按插入排序的。

python dictionary list python-3.7

-1
推荐指数
1
解决办法
6114
查看次数