piR*_*red 33 python numpy insert
我有以下numpy数组
import numpy as np
X = np.array([[5.], [4.], [3.], [2.], [1.]])
Run Code Online (Sandbox Code Playgroud)
我想[6.]在开头插入.我试过了:
X = X.insert(X, 0)
Run Code Online (Sandbox Code Playgroud)
我如何插入X?
小智 46
numpy的拥有insert这是通过入店功能np.insert与文档.
在这种情况下你会想要使用它:
X = np.insert(X, 0, 6., axis=0)
Run Code Online (Sandbox Code Playgroud)
第一个参数X指定要插入的对象.
第二个参数0指定了哪里.
第三个参数6.指定要插入的内容.
第四个参数axis=0指定插入应发生在0每列的位置.我们可以选择行,但你的X是列向量,所以我认为我们会保持一致.
小智 10
我只是写了一些执行此操作的代码〜100,000次,所以我需要找出最快的方法来执行此操作。我无论如何都不是代码效率方面的专家,但是我可以通过%%timeit在jupyter笔记本中使用magic函数来弄清楚一些事情。
我的发现:
np.concatenate(([number],array))
需要最少的时间。我们称其为1倍时间。
np.asarray([number] + list(array))
大约是2倍
np.r_[number,array]
是约4倍。
np.insert(array,0,number)
这似乎是8倍时最差的选择。
我不知道这是如何随着array(我使用形状(15,)数组)的大小而变化的,我建议的大多数选项只有在您希望将数字放在开头时才起作用。但是,由于这就是问题的所在,我认为这是进行这些比较的好地方。
您可以尝试以下方法
X = np.append(arr = np.array([[6]]), values = X, axis= 0)
Run Code Online (Sandbox Code Playgroud)
我们不是将 6 插入到现有的 X 中,而是将 6 添加到 X 中。
因此,第一个参数arr是标量 6 的 numpy 数组,第二个参数是要添加的数组,第三个参数是我们要添加的位置
| 归档时间: |
|
| 查看次数: |
32306 次 |
| 最近记录: |