小编rya*_*lon的帖子

将正则表达式传递给 python 的 csv 模块或 numpy 的 genfromtxt / loadtxt 中的分隔符字段?

我用一些奇怪的分隔(即用逗号分隔的值组,用制表符与其他值分隔)将数据制成表格:

A,345,567   56  67  test
Run Code Online (Sandbox Code Playgroud)

是否有一种干净而巧妙的方法来处理以下任何一个中的多个分隔符:csv modulenumpy.genfromtxtnumpy.loadtxt

我找到了这样的方法,但我希望有更好的解决方案。理想情况下,我想使用 genfromtxt 和正则表达式作为分隔符。

python csv numpy

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

用 Python 计算 3D 多面体的体积?

我试图找出用 Python 计算 3D 多面体体积的最佳方法,我希望有一个简单的解决方案,但我似乎找不到。

示例多面体 示例多面体

我确实发现这篇文章描述了计算 3D 空间中平面多边形的面积,但这似乎没有帮助。

python spatial

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

将网格从中心坐标重新采样到外部(即角)坐标

是否有一种现成的方法可以从网格中心位置(红点)推断网格角位置(蓝点)?

我正在使用的网格不是矩形的,因此常规双线性插值似乎不是最好的方法;不过,这只是为了让我绘制我的数据使用情况pyplot.pcolormesh(),所以也许这并不重要。

在此输入图像描述

网格数据示例

import numpy as np

lons = np.array([[ 109.93299681,  109.08091365,  108.18301276,  107.23602539],
                 [ 108.47911382,  107.60397996,  106.68325946,  105.71386119],
                 [ 107.06790187,  106.17259769,  105.23214707,  104.2436463 ],
                 [ 105.69908292,  104.78633156,  103.82905363,  102.82453812]])

lats = np.array([[ 83.6484245 ,  83.81088466,  83.97177823,  84.13098916],
                 [ 83.55459198,  83.71460466,  83.87294803,  84.02950188],
                 [ 83.4569054 ,  83.61444708,  83.77022192,  83.92410637],
                 [ 83.35554612,  83.51060313,  83.6638013 ,  83.81501464]])
Run Code Online (Sandbox Code Playgroud)

python matplotlib matplotlib-basemap

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

强制使用科学风格的底图彩条标签

字符串格式化可用于为matplotlib.basemap颜色条标签指定科学记数法:

cb = m.colorbar(cs, ax=ax1, format='%.4e')
Run Code Online (Sandbox Code Playgroud)

但随后每个标签都在科学上标注为基础.

如果数字足够大,则colobar会自动将它们缩小为科学记数法,将基座(即x10^n)放在颜色条的顶部,只留下系数编号作为标签.

您可以使用标准轴执行此操作,其中包含以下内容:

ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))
Run Code Online (Sandbox Code Playgroud)

是否有matplotlib.basemap颜色条的等效方法,或者标准的matplotlib颜色条?

python matplotlib matplotlib-basemap

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

丢失了我的git repo中的所有文件,重置不起作用.发生了什么?

前言

我是git的新手,并且已经在一个项目中使用了几个月,并且决定在Github上提供它.我刚刚发现我的备份脚本几乎正常工作,所以我备份了一切,但它很草率.Pheww ......但我希望是B计划.

问题

我意识到一些netCDF数据文件基本上是在版本控制(=大型.git存储库)中复制的,所以我试图通过首先将这些文件扩展名(和一些测试/数据目录)添加到.gitignore根目录中的文件来排除这些文件.这似乎只是忽略这些文件的版本控制,但仍然包含在.git存储库中.然后我将它们添加到了.git/info/exclude,我相信它完全从存储库中忽略它们.

每次发现,我都先做了一次

git pull [my_repo] master
Run Code Online (Sandbox Code Playgroud)

那么一个

git push [my_repo] master
Run Code Online (Sandbox Code Playgroud)

在第二次迭代之后(当我认为我只添加了.gitignore的东西时),我收到一条错误,指出我对需要合并的文件有一些问题.我首先创建了.gitignoregitHub,这是不同的,我认为这是问题并开始合并.

在第三次迭代(已经添加了.git/info/exclude文件),一切都很顺利,但我看到只有我想要的目录EXCLUDED出现在gitHub上.回到我的磁盘上,其他一切都消失了,包括netCDF数据文件......

我试过了git reset --hard master,重置时一切都一样.

任何人都可以对此有所了解吗?可能的解决方案?

我似乎无法找到类似的问题; 但是,我想我不可能是第一个做到这一点的人.

git github

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

使用 matplotlib.pcolormesh() 将颜色设置为透明的正确方法?

我希望将某个级别(在这种情况下0)下的值绘制为透明matplotlib.pcolormesh(),并且我似乎无法使用我找到的选项进行任何处理。

我试过设置kwarg vmin=1,我试过用 设置限制plt.cm.cmap.set_under(alpha=0)

更新:在使用示例脚本后,它似乎vmin对我来说工作正常,所以它似乎是对其他一些混淆因素的影响。我正在使用Basemap并尝试绘制密度图,根据数据的最小值/最大值设置级别(其他所有内容为零)。

我的示例脚本显示 vmin 工作

import matplotlib.pyplot as plt
import random
import numpy as np

x = np.linspace(1,4,num=4)
y = np.linspace(1,6,num=6)
x_mesh, y_mesh = np.meshgrid(x,y)

ydim, xdim = x_mesh.shape

z = np.zeros(((ydim-1),(xdim-1)))

for j in range(ydim-1):
    for i in range(xdim-1):
        z[j,i] = (random.random())+4.

z[1:4,1:2]=0

cmap = plt.cm.Reds
plt.pcolormesh(x,y,z, cmap=cmap, vmin=4)

plt.show()
Run Code Online (Sandbox Code Playgroud)

输出

在此处输入图片说明

python matplotlib

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

使用mpl_toolkit.basemap给出属性错误的pcolormesh()动画

我试图在basemap地图上设置一些密度数据的动画.按照[本SO问题] [1]中的方法,我得到以下错误:

/usr/local/lib/python2.7/dist-packages/matplotlib/collections.pyc in update_scalarmappable(self)
    627         if self._A is None:
    628             return
--> 629         if self._A.ndim > 1:
    630             raise ValueError('Collections can only map rank 1 arrays')
    631         if not self.check_update("array"):

AttributeError: 'list' object has no attribute 'ndim'
Run Code Online (Sandbox Code Playgroud)

如果我init()用空值设置数据self.quad.set_array(self.z.ravel()),我最终得到两个绘制的地图,没有数据被动画.

任何人都可以解决我做错的任何亮点都将不胜感激.谢谢!

示例代码:

def plot_pcolor(lons,lats):

    class UpdateQuad(object):

        def __init__(self,ax, map_object, lons, lats):
                self.ax = ax
                self.m  = map_object
                self.lons = lons
                self.lats = lats

                self.ydim, self.xdim = lons.shape

                self.z = np.zeros((self.ydim-1,self.xdim-1))

                x, y = self.m(lons, …
Run Code Online (Sandbox Code Playgroud)

python animation matplotlib-basemap

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

具有固定斜率的linalg.lstsq?

假设我们有两个数据数组:x = [1,2,3] y = [2,4,6]显然,线性拟合将返回2的斜率和0的截距,当然,这两个例程脾气暴躁linalg.lstsq()polyfit()并且成功。但是他们认为坡度和截距是要搜索的参数。

是否可以保持斜率固定并仅定义截距?

python numpy least-squares

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

以编程方式运行散景服务器以在本地浏览器中显示

我正在使用bokeh( 0.12.6) 实用程序进行交互式数据操作,我将在包中部署该实用程序。The idea is that a user can run a some routine module.utility()that will start the bokeh server, launch the application in a browser, and when the tab or browser are closed, the server will be stopped.

如果我运行bokeh serve --show myapp,我的应用程序可以正常启动,但是在使用我下面描述的方法连接到本地主机时它会挂起。我检查了处理程序,一切看起来都应该如此。

这是一件合理的事情吗,我的做法是否正确?

目录格式

<installed module path>/myapp
??? main.py
Run Code Online (Sandbox Code Playgroud)

./myapp将住在哪里venv/lib/python3.5/site-packages/mymodule等。

主文件

from bokeh.io import curdoc
from bokeh.layouts import column
from bokeh.plotting import figure
from bokeh.models.sources import ColumnDataSource

source = ColumnDataSource(dict(x=list(range(5)), y=list(range(5)))) …
Run Code Online (Sandbox Code Playgroud)

python tornado python-3.x bokeh

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

Fortran 相当于 numpy.where() 函数?

我想在Fortran 中做这样的事情:

program where

real :: a(6) = (/ 4, 5, 6, 7, 8, 9 /)

print *, a(a>7)

end program
Run Code Online (Sandbox Code Playgroud)

Python 中,我通常会像这样使用NumPy 执行此操作:

program where

real :: a(6) = (/ 4, 5, 6, 7, 8, 9 /)

print *, a(a>7)

end program
Run Code Online (Sandbox Code Playgroud)

我玩过,但到目前为止没有任何效果,但我猜这很简单。

fortran numpy slice

3
推荐指数
1
解决办法
773
查看次数