小编lan*_*ery的帖子

GeoPandas标签多边形

鉴于此处提供的形状文件:我想在地图中标记每个多边形(县).这可能与GeoPandas有关吗?

import geopandas as gpd
import matplotlib.pyplot as plt
%matplotlib inline

shpfile=<Path to unzipped .shp file referenced and linked above>
c=gpd.read_file(shpfile)
c=c.loc[c['GEOID'].isin(['26161','26093','26049','26091','26075','26125','26163','26099','26115','26065'])]
c.plot()
Run Code Online (Sandbox Code Playgroud)

提前致谢!

matplotlib python-3.x geopandas

17
推荐指数
2
解决办法
7812
查看次数

Pandas DataFrame以字符串元组作为索引

我在pandas这里感觉到一些奇怪的行为.我有一个看起来像的数据框

df = pd.DataFrame(columns=['Col 1', 'Col 2', 'Col 3'],
                  index=[('1', 'a'), ('2', 'a'), ('1', 'b'), ('2', 'b')])

In [14]: df
Out[14]:
       Col 1 Col 2 Col 3
(1, a)   NaN   NaN   NaN
(2, a)   NaN   NaN   NaN
(1, b)   NaN   NaN   NaN
(2, b)   NaN   NaN   NaN
Run Code Online (Sandbox Code Playgroud)

我可以设置任意元素的值

In [15]: df['Col 2'].loc[('1', 'b')] = 6

In [16]: df
Out[16]:
       Col 1 Col 2 Col 3
(1, a)   NaN   NaN   NaN
(2, a)   NaN   NaN   NaN
(1, b)   NaN …
Run Code Online (Sandbox Code Playgroud)

python indexing pandas

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

使用Scipy curve_fit和分段函数

我收到了一个优化警告:

OptimizeWarning: Covariance of the parameters could not be estimated
                 category=OptimizeWarning)
Run Code Online (Sandbox Code Playgroud)

当我试图使用我的分段函数来适应我的数据scipy.optimize.curve_fit.意思是没有适合发生.我可以轻松地将抛物线拟合到我的数据中,并且我正在提供curve_fit我认为良好的初始参数.下面的完整代码示例.有谁知道为什么curve_fit可能不相处np.piecewise?还是我犯了一个不同的错误?

import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt


def piecewise_linear(x, x0, y0, k1, k2):
    y = np.piecewise(x, [x < x0, x >= x0],
                     [lambda x:k1*x + y0-k1*x0, lambda x:k2*x + y0-k2*x0])
    return y

def parabola(x, a, b):
    y = a * x**2 + b
    return y

x = np.array([-3, -2, -1, 0, 1, 2, 3])
y …
Run Code Online (Sandbox Code Playgroud)

python numpy curve-fitting scipy

7
推荐指数
1
解决办法
1801
查看次数

与函数和采样数据Python的双重积分

我正在寻找一种方法,使用numpy trapz或scipy堆栈中的类似函数对采样数据进行双重积分.

特别是,我想计算功能:

方程

其中f(x',y')是采样数组,F(x, y)是一个相同维度的数组.

这是我的尝试,结果不正确:

def integrate_2D(f, x, y):
    def integral(f, x, y, x0, y0):
        F_i = np.trapz(np.trapz(np.arcsinh(1/np.sqrt((x-x0+0.01)**2+(y-y0+0.01)**2)) * f, x), y)
        return F_i
    sigma = 1.0
    F = [[integral(f, x, y, x0, y0) for x0 in x] for y0 in y]
    return F

xlin = np.linspace(0, 10, 100)
ylin = np.linspace(0, 10, 100)
X,Y = np.meshgrid(xlin, ylin)

f = 1.0 * np.exp(-((X - 8.)**2 + (Y - 8)**2)/(8.0))
f += 0.5 * np.exp(-((X - …
Run Code Online (Sandbox Code Playgroud)

python numpy

6
推荐指数
1
解决办法
3560
查看次数

Python 中的 10,000 多个点 3D 散点图(带快速渲染)

在性能方面,以下代码片段在mayavi.

import numpy as np
from mayavi import mlab

n = 5000
x = np.random.rand(n)
y = np.random.rand(n)
z = np.random.rand(n)
s = np.sin(x)**2 + np.cos(y)

mlab.points3d(x, y, z, s, colormap="RdYlBu", scale_factor=0.02, scale_mode='none')
Run Code Online (Sandbox Code Playgroud)

而是mayavi开始噎住了n >= 10000matplotlib, ( Axes3D.scatter) 中类似的 3d 绘图例程同样难以处理这种大小的数据集(为什么我首先开始研究mayavi)。

首先,在mayavi(琐碎的或非平凡的)中是否有一些我遗漏的东西会使 10,000 多个点散点图更容易渲染?

其次,如果上面的答案是否定的,那么mayavi我还需要哪些其他选项(在python 包中或不同的 python 包中)来绘制这种量级的数据集?

我标记 ParaView 只是为了添加在 ParaView 中渲染我的数据非常顺利,这让我相信我并没有试图做任何不合理的事情。

更新:

将模式指定为 2D 字形对加快速度大有帮助。例如

mlab.points3d(x, y, z, s, colormap="RdYlBu", scale_factor=0.02,
              scale_mode='none', mode='2dcross') …
Run Code Online (Sandbox Code Playgroud)

python matplotlib mayavi paraview

6
推荐指数
1
解决办法
5032
查看次数

如何处理 pandas 条形图中恼人的间隙

我想修复下面条形图中 2012 年和 2013 年之间的差距。

在此输入图像描述

我的数据框是

In [30]: df
Out[30]:
            Pre-Release  Post-Release
FinishDate
2008                1.0           0.0
2009               18.0           0.0
2010               96.0           0.0
2011              161.0           0.0
2012              157.0           0.0
2013                0.0         139.0
2014                0.0         155.0
2015                0.0         150.0
2016                0.0          91.0
2017                0.0          15.0
Run Code Online (Sandbox Code Playgroud)

我用来df.plot(kind='bar', width=1)绘图。

python matplotlib bar-chart pandas

6
推荐指数
1
解决办法
2161
查看次数

处理pandas的问题是读csv

我有一个pandas read_csv的问题.我有很多与股票市场相关联的txt文件.它是这样的:

SecCode,SecName,Tdate,Ttime,LastClose,OP,CP,Tq,Tm,Tt,Cq,Cm,Ct,HiP,LoP,SYL1,SYL2,Rf1,Rf2,bs,s5,s4,s3,s2,s1,b1,b2,b3,b4,b5,sv5,sv4,sv3,sv2,sv1,bv1,bv2,bv3,bv4,bv5,bsratio,spd,rpd,depth1,depth2  
600000,????,20120104,091501,8.490,.000,.000,0,.000,0,0,.000,0,.000,.000,.000,.000,.000,.000, ,.000,.000,.000,.000,8.600,8.600,.000,.000,.000,.000,0,0,0,0,1100,1100,38900,0,0,0,.00,.000,.00,.00,.00
600000,????,20120104,091506,8.490,.000,.000,0,.000,0,0,.000,0,.000,.000,.000,.000,.000,.000, ,.000,.000,.000,.000,8.520,8.520,.000,.000,.000,.000,0,0,0,0,56795,56795,33605,0,0,0,.00,.000,.00,.00,.00
600000,????,20120104,091511,8.490,.000,.000,0,.000,0,0,.000,0,.000,.000,.000,.000,.000,.000, ,.000,.000,.000,.000,8.520,8.520,.000,.000,.000,.000,0,0,0,0,56795,56795,34605,0,0,0,.00,.000,.00,.00,.00
600000,????,20120104,091551,8.490,.000,.000,0,.000,0,0,.000,0,.000,.000,.000,.000,.000,.000, ,.000,.000,.000,.000,8.520,8.520,.000,.000,.000,.000,0,0,0,0,56795,56795,35205,0,0,0,.00,.000,.00,.00,.00
600000,????,20120104,091621,8.490,.000,.000,0,.000,0,0,.000,0,.000,.000,.000,.000,.000,.000, ,.000,.000,.000,.000,8.520,8.520,.000,.000,.000,.000,0,0,0,0,57795,57795,34205,0,0,0,.00,.000,.00,.00,.00
Run Code Online (Sandbox Code Playgroud)

我用这段代码来读它:

fields = ['SecCode', 'Tdate','Ttime','LastClose','OP','CP','Rf1','Rf2']  
df = pd.read_csv('SHL1_TAQ_600000_201201.txt',usecols=fields)
Run Code Online (Sandbox Code Playgroud)

但是我遇到了一个问题:

Traceback (most recent call last):
  File "E:/workspace/Senti/highlevel/highlevel.py", line 8, in <module>
    df = pd.read_csv('SHL1_TAQ_600000_201201.txt',usecols=fields,header=1)
  File "D:\Anaconda2\lib\site-packages\pandas\io\parsers.py", line 562, in parser_f
    return _read(filepath_or_buffer, kwds)
  File "D:\Anaconda2\lib\site-packages\pandas\io\parsers.py", line 315, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
  File "D:\Anaconda2\lib\site-packages\pandas\io\parsers.py", line 645, in __init__
    self._make_engine(self.engine)
  File "D:\Anaconda2\lib\site-packages\pandas\io\parsers.py", line 799, in _make_engine
    self._engine = CParserWrapper(self.f, **self.options)
  File "D:\Anaconda2\lib\site-packages\pandas\io\parsers.py", line 1257, in __init__
    raise ValueError("Usecols …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

如何用给定的索引/坐标填充零的numpy数组

给定一个零的numpy数组,说

arr = np.zeros((5, 5))
Run Code Online (Sandbox Code Playgroud)

以及代表多边形顶点的索引数组,例如

verts = np.array([[0, 2], [2, 0], [2, 4]])
Run Code Online (Sandbox Code Playgroud)

1)什么是优雅的做事方式

for v in verts:
    arr[v[0], v[1]] = 1
Run Code Online (Sandbox Code Playgroud)

这样结果数组是

In [108]: arr
Out[108]: 
array([[ 0.,  0.,  1.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 1.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.]])
Run Code Online (Sandbox Code Playgroud)

2)我如何用一个数组填充,以便输出数组是

In [158]: arr
Out[158]: 
array([[ 0.,  0.,  1.,  0.,  0.],
       [ 0.,  1.,  1.,  1.,  0.],
       [ 1.,  1.,  1.,  1., …
Run Code Online (Sandbox Code Playgroud)

python numpy scipy

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

如何删除Matplotlib烛台图表中的周末?

当在中绘制烛台图时matplotlib,该图会在周末留下难看的间隙。发生这种情况是由于周末市场关闭导致数据中断。周末的差距如何消除?

下面是一个简单的示例,说明图中存在间隙。

import matplotlib.pyplot as plt
from matplotlib.finance import quotes_historical_yahoo_ohlc, candlestick_ohlc

date1, date2 = [(2006, 6, 1), (2006, 8, 1)]
quotes_mpl = quotes_historical_yahoo_ohlc('INTC', date1, date2)

fig, ax = plt.subplots()
candlestick_ohlc(ax, quotes_mpl)
ax.xaxis_date()
plt.xticks(rotation=45)
Run Code Online (Sandbox Code Playgroud)

周末差距由绿色箭头显示。

在此处输入图片说明

python matplotlib candlestick-chart

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