我有一个非常大的2D数组,看起来像这样:
a=
[[a1, b1, c1],
[a2, b2, c2],
...,
[an, bn, cn]]
Run Code Online (Sandbox Code Playgroud)
使用numpy,是否有一种简单的方法可以获得一个新的2D数组,例如从初始数组a中有2个随机行(无需替换)?
例如
b=
[[a4, b4, c4],
[a99, b99, c99]]
Run Code Online (Sandbox Code Playgroud) 我的python脚本使用matplotlib绘制x,y,z数据集的2D"热图".我的x和y值代表蛋白质中的氨基酸残基,因此只能是整数.当我放大绘图时,它看起来像这样:

正如我所说,xy轴上的浮点值对我的数据没有意义,因此我希望它看起来像这样:

任何想法如何实现这一目标?这是生成图的代码:
def plotDistanceMap(self):
# Read on x,y,z
x = self.currentGraph['xData']
y = self.currentGraph['yData']
X, Y = numpy.meshgrid(x, y)
Z = self.currentGraph['zData']
# Define colormap
cmap = colors.ListedColormap(['blue', 'green', 'orange', 'red'])
cmap.set_under('white')
cmap.set_over('white')
bounds = [1,15,50,80,100]
norm = colors.BoundaryNorm(bounds, cmap.N)
# Draw surface plot
img = self.axes.pcolor(X, Y, Z, cmap=cmap, norm=norm)
self.axes.set_xlim(x.min(), x.max())
self.axes.set_ylim(y.min(), y.max())
self.axes.set_xlabel(self.currentGraph['xTitle'])
self.axes.set_ylabel(self.currentGraph['yTitle'])
# Cosmetics
#matplotlib.rcParams.update({'font.size': 12})
xminorLocator = MultipleLocator(10)
yminorLocator = MultipleLocator(10)
self.axes.xaxis.set_minor_locator(xminorLocator)
self.axes.yaxis.set_minor_locator(yminorLocator)
self.axes.tick_params(direction='out', length=6, width=1)
self.axes.tick_params(which='minor', direction='out', length=3, width=1)
self.axes.xaxis.labelpad = 15 …Run Code Online (Sandbox Code Playgroud)