我有一个没有标题的csv文件,带有DateTime索引.我想重命名索引和列名,但是使用df.rename()只重命名列名.错误?我的版本是0.12.0
In [2]: df = pd.read_csv(r'D:\Data\DataTimeSeries_csv//seriesSM.csv', header=None, parse_dates=[[0]], index_col=[0] )
In [3]: df.head()
Out[3]:
1
0
2002-06-18 0.112000
2002-06-22 0.190333
2002-06-26 0.134000
2002-06-30 0.093000
2002-07-04 0.098667
In [4]: df.rename(index={0:'Date'}, columns={1:'SM'}, inplace=True)
In [5]: df.head()
Out[5]:
SM
0
2002-06-18 0.112000
2002-06-22 0.190333
2002-06-26 0.134000
2002-06-30 0.093000
2002-07-04 0.098667
Run Code Online (Sandbox Code Playgroud) 使用matplotlib绘制绘图时:
我正在使用Pandas库进行遥感时间序列分析.最后我想通过使用chunk-sized将我的DataFrame保存到csv,但我遇到了一个小问题.我的代码生成了6个NumPy数组,我将其转换为Pandas系列.这些系列中的每一个都包含很多项目
>>> prcpSeries.shape
(12626172,)
Run Code Online (Sandbox Code Playgroud)
我想将系列添加到Pandas DataFrame(df)中,这样我就可以通过chunk将它们保存到csv文件中.
d = {'prcp': pd.Series(prcpSeries),
'tmax': pd.Series(tmaxSeries),
'tmin': pd.Series(tminSeries),
'ndvi': pd.Series(ndviSeries),
'lstm': pd.Series(lstmSeries),
'evtm': pd.Series(evtmSeries)}
df = pd.DataFrame(d)
outFile ='F:/data/output/run1/_'+str(i)+'.out'
df.to_csv(outFile, header = False, chunksize = 1000)
d = None
df = None
Run Code Online (Sandbox Code Playgroud)
但是我的代码卡在下面一行给出内存错误
df = pd.DataFrame(d)
Run Code Online (Sandbox Code Playgroud)
有什么建议?是否可以按块填充Pandas DataFrame块?
我想使用matplotlib Basemap 绘制光栅tiff (下载 -723Kb).我的栅格投影坐标以米为单位:
In [2]:
path = r'albers_5km.tif'
raster = gdal.Open(path, gdal.GA_ReadOnly)
array = raster.GetRasterBand(20).ReadAsArray()
print ('Raster Projection:\n', raster.GetProjection())
print ('Raster GeoTransform:\n', raster.GetGeoTransform())
Out [2]:
Raster Projection:
PROJCS["unnamed",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4326"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",15],PARAMETER["standard_parallel_2",65],PARAMETER["latitude_of_center",30],PARAMETER["longitude_of_center",95],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]]]
Raster GeoTransform:
(190425.8243, 5000.0, 0.0, 1500257.0112, 0.0, -5000.0)
Run Code Online (Sandbox Code Playgroud)
如果我试图用这个用罗宾投影绘制contourf与latlon=False比X和Y被认为是地图投影坐标(见文档,我想这就是我).
但如果我看一下情节,我会注意到它的左下角非常小:

使用此代码:
In [3]:
xy = raster.GetGeoTransform()
x = raster.RasterXSize
y = raster.RasterYSize
lon_start = xy[0]
lon_stop = x*xy[1]+xy[0]
lon_step = xy[1]
lat_start = xy[3]
lat_stop = y*xy[5]+xy[3]
lat_step = xy[5] …Run Code Online (Sandbox Code Playgroud) 我想使用group-by查询连接两列,从而产生一个用括号分隔的数组.我知道这个问题与这个问题有关,但像往常一样,我的用例有点不同.
一个简单的例子(也作为SQL Fiddle).目前我的查询返回以下内容:
ID X Y
3 0.5 2.71
3 1.0 2.50
3 1.5 2.33
6 0.5 2.73
6 1.5 2.77
Run Code Online (Sandbox Code Playgroud)
但是我希望连接/聚合X/ Y列以获得以下内容:
ID XY
3 [[0.5,2.71],[1.0,2.50],[1.5,2.33]]
6 [[0.5,2.73],[1.5,2.77]]
Run Code Online (Sandbox Code Playgroud)
目前我已经尝试将列连接成一个如下:
SELECT "ID",concat_ws(', ',"X", "Y") as XY FROM Table1;
Run Code Online (Sandbox Code Playgroud)
哪个回报:
ID xy
3 0.5, 2.71
3 1, 2.50
3 1.5, 2.33
6 0.5, 2.73
Run Code Online (Sandbox Code Playgroud)
用过array_agg():
SELECT "ID",array_to_string(array_agg("X"),',') AS XY
FROM Table1
GROUP BY "ID";
Run Code Online (Sandbox Code Playgroud)
导致:
ID xy
3 0.5,1,1.5
6 0.5
Run Code Online (Sandbox Code Playgroud)
我觉得我越来越近了,但是我会非常感激.
我有两个信号,我希望其中一个响应另一个,但是有一定的相移.
现在我想计算相干性或归一化的交叉谱密度,以估计输入和输出之间是否存在任何因果关系,以找出这种相干性出现在哪个频率上.
例如,参见此图像(来自此处),它在频率10处似乎具有高相干性:

现在我知道我可以使用互相关来计算两个信号的相移,但是如何使用相干性(频率为10)来计算相移?
图像代码:
"""
Compute the coherence of two signals
"""
import numpy as np
import matplotlib.pyplot as plt
# make a little extra space between the subplots
plt.subplots_adjust(wspace=0.5)
nfft = 256
dt = 0.01
t = np.arange(0, 30, dt)
nse1 = np.random.randn(len(t)) # white noise 1
nse2 = np.random.randn(len(t)) # white noise 2
r = np.exp(-t/0.05)
cnse1 = np.convolve(nse1, r, mode='same')*dt # colored noise 1
cnse2 = np.convolve(nse2, r, mode='same')*dt # colored noise 2
# …Run Code Online (Sandbox Code Playgroud) python signal-processing matplotlib spectral-density cross-correlation
据我所知,它没有在索引,切片和迭代 scipy教程中介绍,所以让我在这里问一下:
说我
x = np.array([[1,2],[3,4],[5,6],[7,8],[9,0]])
x: array([[1, 2],
[3, 4],
[5, 6],
[7, 8],
[9, 0]])
Run Code Online (Sandbox Code Playgroud)
如何切割数组以获取第一行和最后一行:
y: array([[1, 2],
[3, 4],
[7, 8],
[9, 0]])
Run Code Online (Sandbox Code Playgroud) 这个怎么运作?我在IPython Notebook中运行了一些代码.一些迭代的工作.
不小心我用正在运行的Notebook关闭了浏览器,但是回到IPython Dashboard我看到这个特定的笔记本没有关机,所以如果我再次打开笔记本,我看到我的代码前面的[*]它正在执行.
我甚至可以听到我的电脑仍在运行代码,但它并没有返回任何打印语句的新输出.
我可以等待并最终继续输出,或者我的PC仍将运行我的代码,但它将不再可访问?
使用底图我用来添加我的自定义边界shapefile,如下所示:
map = Basemap(..)
map.readshapefile(file.shp, 'attribute', drawbounds=True)
Run Code Online (Sandbox Code Playgroud)
我怎样才能使用cartopy做同样的事情?
我试过这个:
ax.add_feature(cfeature.shapereader.Polygon('file.shp'))
Run Code Online (Sandbox Code Playgroud)
但那不起作用..
我使用einsum函数获得了一些工作代码.但是因为einsum目前仍然black voodoo适合我.我想知道,这段代码实际上是做什么的,如果它可以以某种方式使用优化np.dot
我的数据看起来像这样
n, p, q = 40000, 8, 4
a = np.random.rand(n, p, q)
b = np.random.rand(n, p)
Run Code Online (Sandbox Code Playgroud)
我现有的函数einsum函数看起来像这样
f1 = np.einsum("ijx,ijy->ixy", a, a)
f2 = np.einsum("ijx,ij->ix", a, b)
Run Code Online (Sandbox Code Playgroud)
但它真正做到了什么?直到这里:每个尺寸(轴)由标签表示,i等于第一个轴n,j第二个轴p,x并且y是同一轴的不同标签q.因此输出数组的顺序f1是ixy,因此输出形状是40000,4,4 (n,q,q)
但就我而言.和