小编urg*_*geo的帖子

python:拉伸世界地图

我正试图在世界地图上绘制一些坐标点.我使用圆柱投影如下:

fig = plt.figure(figsize=(18,6))
map = Basemap(projection='cyl', lat_0 = 57, lon_0 = -135, resolution = 'c', area_thresh = 0.1, llcrnrlon=-180.0, llcrnrlat=-7.0, urcrnrlon=180.0, urcrnrlat=7.0)
X, Y = map(LON, LAT)
map.plot(X, Y, "ro", markersize=5)
Run Code Online (Sandbox Code Playgroud)

问题在于我的点(大约1000)都包含在[-3°:-3°]纬度范围内,并且一旦在整个世界地图中绘制,它们都被挤压到赤道附近的紧线.

因此,我想"拉伸",比如说,[-5°:+ 5°]纬度范围,甚至失去我的投影的比例,以便缩放感兴趣的区域并扩大我的点之间的距离.我尝试限制llcrnrlaturcrnrlat参数,但只是裁剪了感兴趣的区域,没有缩放或放大图像.我怎样才能做到这一点?

点都是压缩的

python matplotlib matplotlib-basemap

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

按列表元素之间的差异对列表元素进行分组

给定一个列表

A = [1, 6, 13, 15, 17, 18, 19, 21, 29, 36, 53, 58, 59, 61, 63, 78, 79, 81, 102, 114]
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以对连续元素之间的差异小于 3 的所有簇进行分组?

也就是说,获得如下内容:

[13, 15, 17, 19, 21], [58, 59, 61, 63], [78, 79, 81]
Run Code Online (Sandbox Code Playgroud)

我想知道是否存在任何内置函数,但我找不到类似的东西。我试图用 来解决这个groupby问题itertools,但我被困住了。先感谢您。

python grouping list

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

数组中的数字簇

我有一个像这样的数组:

A = [1,3,8,9,3,7,2,1,3,9,6,8,3,8,8,1,2]
Run Code Online (Sandbox Code Playgroud)

而且我想计算那些"入口集群"的数量>5.在这种情况下,结果应该是4,因为:

[1, 3, (8,9), 3, (7), 2, 1, 3, (9,6,8), 3, (8,8), 1, 2]
Run Code Online (Sandbox Code Playgroud)

给定L数组的长度,我可以这样做:

A = [1,3,8,9,3,7,2,1,3,9,6,8,3,8,8,1,2]
A = np.array(A)

for k in range(0,L):
    if A[k]>5:
        print k, A[k]
Run Code Online (Sandbox Code Playgroud)

这给了我所有大于的条目5.但是我怎么能对每一组数字进行分组呢?

python arrays cluster-computing python-itertools

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

如何使用python中文件中的数据填充数组

我有一个包含几列的 FILE.txt:

A    12    13.9
B    51    55.4
C    20    22.1
D    89    96.8
Run Code Online (Sandbox Code Playgroud)

我想读取它们并为每列填充一个数组,以获得:

array LETTERS = [A, B, C, D]
array FIRST = [12, 51, 20, 89]
array SECOND = [13.9, 55.4, 22.1, 96.8]
Run Code Online (Sandbox Code Playgroud)

我怎样才能在Python中做到这一点?

python arrays file

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

在Python中重新排列数字列表

我有一个关于用所需的 bin 宽度重新排列数字列表的问题。这基本上就是频率直方图的作用,但我不需要绘图,只需要箱数和每个箱的出现次数。

到目前为止,我已经编写了一些可以实现我想要的功能的代码,但效率不是很高。给定一个 list a,为了将其重新装箱,箱宽度等于 3,我编写了以下内容:

import os, sys, math
import numpy as np

# list of numbers
a = list(range(3000))

# number of entries
L = int(len(a))

# desired bin width
W = 3

# number of bins with width W
N = int(L/W)

# definition of new empty array
a_rebin = np.zeros((N, 2))

# cycles to populate the new rebinned array
for n in range(0,N):
    k = 0
    for i in range(0,L):
        if a[i] >= (W*n) …
Run Code Online (Sandbox Code Playgroud)

python bin dynamic-rebinding

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