小编Gab*_*iel的帖子

将元素插入numpy数组的开头和结尾

我有一个numpy数组:

import numpy as np
a = np.array([2, 56, 4, 8, 564])
Run Code Online (Sandbox Code Playgroud)

我想添加两个元素:一个在数组的开头88,一个在结尾,77.

我可以这样做:

a = np.insert(np.append(a, [77]), 0, 88)
Run Code Online (Sandbox Code Playgroud)

所以a最终看起来像:

array([ 88,   2,  56,   4,   8, 564,  77])
Run Code Online (Sandbox Code Playgroud)

问题是:这样做的正确方法是什么?我觉得自己像一个嵌套np.append在一个np.insert很可能不是Python的方式来做到这一点.

python arrays numpy

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

三维matplotlib图中y轴和z轴的交换位置

默认情况下,在3D中绘制一组点(或其他),垂直matplotlib定位z轴,如下所示(代码如下):

在此输入图像描述

我需要交换zy轴,以便y垂直显示该轴.

我环顾四周但却没有办法告诉matplotlib你这样做.

补充:我不想在我交换数据和标签的地方求助.这是一个简单的3点3D图,但我必须绘制更复杂的表面.我正在寻找一个通用的解决方案,而不仅仅是散点图.告诉matplotlib我们将y轴垂直而不是轴放在一个简单的方法z干净的方法.


MWE

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D


fig = plt.figure()
ax = Axes3D(fig)

ax.scatter([0.2, 0.5, 0.8], [2.3, 0.47, 1.], [2.1, 5.3, 0.7])

ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()
Run Code Online (Sandbox Code Playgroud)

python 3d plot matplotlib

14
推荐指数
2
解决办法
822
查看次数

在绘制的线上打印字符串(模拟等高线图标签)

等高线图演示展示了如何绘制与绘制在他们的电平值的曲线,见下文.

在此输入图像描述

对于像下面的代码获得的简单线条图,有没有办法做同样的事情?

import matplotlib.pyplot as plt 

x = [1.81,1.715,1.78,1.613,1.629,1.714,1.62,1.738,1.495,1.669,1.57,1.877,1.385]
y = [0.924,0.915,0.914,0.91,0.909,0.905,0.905,0.893,0.886,0.881,0.873,0.873,0.844]

# This is the string that should show somewhere over the plotted line.
line_string = 'name of line'

# plotting
plt.plot(x,y)
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

13
推荐指数
2
解决办法
3546
查看次数

使用python生成RA与DEC赤道坐标图

我正在尝试生成一个看起来或多或少像这样的赤道坐标图:

在此输入图像描述

(该图取自本文,它显示了大型和小型MC在赤道坐标中的位置)

关于这个情节需要注意的重要事项:

  • theta轴(即:赤经)是在H:M:S,因为它是在天文学习惯,而不是在作为默认度(小时,分,秒)polar选项不会在matplotlib.
  • r轴(即:磁偏角)从-90°向外增加,并且网格中居中(0H,-90°).
  • 该图被剪裁,意味着只有一部分显示而不是整个圆(matplotlib默认情况下).

使用polar=True选项matplotlib,我设法生成的最接近的图是这个(MWE下面是这里的数据文件;由于数据文件稍微小一些,因此与上图相比,某些点不存在):

在此输入图像描述

我还需要在绘图中添加第三列数据,这就是为什么我添加一个颜色条并将每个点相应地添加到z数组的原因:

在此输入图像描述

所以我现在最需要的是一种剪辑情节的方法.主要基于这个问题而且这个例子 @cphlewis与他的回答非常接近,但仍然缺少一些东西(在他的回答中提到).

任何有关此问题的帮助和/或指示将不胜感激.


MWE

(注意我gridspec用来定位子图,因为我需要在同一个输出图像文件中生成其中的几个)

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

def skip_comments(f):
    '''
    Read lines that DO NOT start with a # symbol.
    '''
    for line in f:
        if not …
Run Code Online (Sandbox Code Playgroud)

python matplotlib astronomy polar-coordinates

13
推荐指数
2
解决办法
5436
查看次数

Why is random.sample faster than numpy's random.choice?

I need a way to sample without replacement a certain array a. I tried two approaches (see MCVE below), using random.sample() and np.random.choice.

I assumed the numpy function would be faster, but it turns out it is not. In my tests random.sample is ~15% faster than np.random.choice.

Is this correct, or am I doing something wrong in my example below? If this is correct, why?

import numpy as np
import random
import time
from contextlib import contextmanager …
Run Code Online (Sandbox Code Playgroud)

python random numpy

13
推荐指数
1
解决办法
5334
查看次数

Sublime Text 3放大内部查看器中的图像

Sublime Text 3现在有了一段内部图像查看器.

有没有办法放大/缩小在这个内部查看器中显示的图像?通过ST中的某个选项或使用外部包.

我环顾四周,但我找不到任何相关信息.快捷Ctrl +Ctrl -仅缩放文本,而不是图像.

sublimetext3

13
推荐指数
1
解决办法
919
查看次数

导出SublimeText中已安装软件包的列表

我知道我可以使用Ctrl+Shipt+P和选择在Sublime中看到所有已安装的软件包Package Control: List Packages.

我安装了很多软件包(> 20),我需要一种方法将它们的名称(理想情况下也是它们的https://packagecontrol.io/页面的链接)导出到文本文件或类似输出.

这可以完成吗?

sublimetext sublimetext3

13
推荐指数
1
解决办法
4380
查看次数

无法升级Scipy

我想升级Scipy0.9.00.12.0.我使用命令:

sudo pip install --upgrade scipy
Run Code Online (Sandbox Code Playgroud)

我得到了各种各样的错误,这些错误可以在pip.log文件中看到,我很遗憾不是很容易理解错误的python.任何帮助将不胜感激.

python upgrade scipy

12
推荐指数
2
解决办法
9903
查看次数

如何生成等间隔插值

我有一个不均匀间隔的(x,y)值列表.是此问题中使用的存档.

我能够在值之间进行插值,但我得到的不是等间隔插值点.这是我做的:

x_data = [0.613,0.615,0.615,...]
y_data = [5.919,5.349,5.413,...]

# Interpolate values for x and y.
t = np.linspace(0, 1, len(x_data))
t2 = np.linspace(0, 1, 100)
# One-dimensional linear interpolation.
x2 = np.interp(t2, t, x_data)
y2 = np.interp(t2, t, y_data)

# Plot x,y data.
plt.scatter(x_data, y_data, marker='o', color='k', s=40, lw=0.)

# Plot interpolated points.
plt.scatter(x2, y2, marker='o', color='r', s=10, lw=0.5)
Run Code Online (Sandbox Code Playgroud)

结果如下:

在此输入图像描述

可以看出,红点在图的部分中更靠近在一起,其中原始点分布更密集.

我需要一种方法来根据给定的步长值(比如0.1)生成在x,y 中等间隔的插值点


正如askewchan正确指出的那样,当我的意思是" 在x,y 中等间隔 "时,我的意思是曲线中的两个连续插值点应该相互间隔(欧几里得直线距离)相同的值.


我尝试了unubtu的答案,它适用于平滑曲线,但似乎打破了不那么顺利的曲线:

非光滑曲线

这是因为代码,而不是直接在曲线上计算的欧几里德的方式点的距离,我需要的距离曲线上,是点之间是相同的.这个问题可以以某种方式解决吗?

python interpolation numpy scipy

12
推荐指数
2
解决办法
7681
查看次数

使用SublimeREPL运行python代码时重用选项卡

在这个问题如何在SublimeREPL上运行Python代码,给出了如何使用通常的Ctrl+b快捷方式在SublimeText中使用SublimeREPL运行python代码的答案.

步骤很简单:

1-创建一个新的空文件并将命令粘贴到其中:

{
    "target": "run_existing_window_command", 
    "id": "repl_python_run",
    "file": "config/Python/Main.sublime-menu"
}
Run Code Online (Sandbox Code Playgroud)

2-将文件另存为:

/home/USER/.config/sublime-text-3/Packages/User/SublimeREPL-python.sublime-build
Run Code Online (Sandbox Code Playgroud)

3-转到Python文件选项卡,然后选择:

Tools > Build System > SublimeREPL-python
Run Code Online (Sandbox Code Playgroud)

之后,通常的Ctrl+b快捷方式将打开一个执行代码的新选项卡.

这个问题是标签不会被重复使用.这意味着每次点击时Ctrl+b,都会打开一个新选项卡,而不是在之前打开的同一选项卡中运行的代码.

有没有办法让SublimeREPL重用标签?

python sublimerepl sublimetext3

12
推荐指数
2
解决办法
2097
查看次数