我有一个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的方式来做到这一点.
默认情况下,在3D中绘制一组点(或其他),垂直matplotlib定位z轴,如下所示(代码如下):
我需要交换z和y轴,以便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) 该等高线图演示展示了如何绘制与绘制在他们的电平值的曲线,见下文.

对于像下面的代码获得的简单线条图,有没有办法做同样的事情?
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) 我正在尝试生成一个看起来或多或少像这样的赤道坐标图:

关于这个情节需要注意的重要事项:
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) 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) Sublime Text 3现在有了一段内部图像查看器.
有没有办法放大/缩小在这个内部查看器中显示的图像?通过ST中的某个选项或使用外部包.
我环顾四周,但我找不到任何相关信息.快捷Ctrl +和Ctrl -仅缩放文本,而不是图像.
我知道我可以使用Ctrl+Shipt+P和选择在Sublime中看到所有已安装的软件包Package Control: List Packages.
我安装了很多软件包(> 20),我需要一种方法将它们的名称(理想情况下也是它们的https://packagecontrol.io/页面的链接)导出到文本文件或类似输出.
这可以完成吗?
我想升级Scipy的0.9.0到0.12.0.我使用命令:
sudo pip install --upgrade scipy
Run Code Online (Sandbox Code Playgroud)
我得到了各种各样的错误,这些错误可以在pip.log文件中看到,我很遗憾不是很容易理解错误的python.任何帮助将不胜感激.
我有一个不均匀间隔的(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的答案,它适用于平滑曲线,但似乎打破了不那么顺利的曲线:

这是因为代码,而不是直接在曲线上计算的欧几里德的方式点的距离,我需要的距离曲线上,是点之间是相同的.这个问题可以以某种方式解决吗?
在这个问题如何在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 ×8
matplotlib ×3
numpy ×3
sublimetext3 ×3
scipy ×2
3d ×1
arrays ×1
astronomy ×1
plot ×1
random ×1
sublimerepl ×1
sublimetext ×1
upgrade ×1