Sha*_*oon 7 python arrays numpy
我有一个形状为:的数组(1, 100),它是:
[[1. 2. 3. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 55.]]
Run Code Online (Sandbox Code Playgroud)
123我想在末尾添加一些内容(例如类似的数字)并删除第一个元素,这样我将拥有:
[[2. 3. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 55. 123.]]
Run Code Online (Sandbox Code Playgroud)
它保留了原来的形状(1, 100)
我在尝试:
x_pred = np.append(x_pred, next_index, axis=1)
Run Code Online (Sandbox Code Playgroud)
(x_pred是一个(1, 100)数组并且next_index是一个标量)
但我收到一个错误:
ValueError: all the input arrays must have same number of dimensions
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
您可以使用 来执行此操作roll。
a = np.zeros((1,10))
#roll and replace
a[0] = np.roll(a[0],-1)
a[0][-1] = new_value
Run Code Online (Sandbox Code Playgroud)
import numpy as np
x_pred = np.zeros((1,100))
x_pred = np.insert(x_pred, x_pred.size, 123, 1)
x_pred = np.delete(x_pred, 0, axis=1)
Run Code Online (Sandbox Code Playgroud)
x_pred 打印:
array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
123.]])
Run Code Online (Sandbox Code Playgroud)
有尺寸100
下面不适用于二维数组,但对于一维数组是正确的:
使用 numpy insert 你可以做到这一点
import numpy as np
tmp = np.array([0,1,2,3])
tmp = np.insert(tmp[1:], tmp.size-1, 123)
# [ 1, 2, 3, 123]
Run Code Online (Sandbox Code Playgroud)
或者更像你的例子
import numpy as np
tmp = np.array([0,0,0,0])
tmp = np.insert(tmp[1:], tmp.size-1, 123)
# [ 0, 0, 0, 123]
Run Code Online (Sandbox Code Playgroud)
第np.insert()一个参数是要插入的数组,第二个参数是要插入的索引,第三个参数是要插入的值。
justtmp[1:]表示除了第一个元素(即第 0 个元素)之外的所有内容,直到最后。
x_pred = np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0,])
x_pred = np.insert(x_pred[1:], x_pred.size-1, 123)
Run Code Online (Sandbox Code Playgroud)
x_pred印刷:
array([ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 123])
Run Code Online (Sandbox Code Playgroud)
和
x_pred.size打印100
| 归档时间: |
|
| 查看次数: |
4750 次 |
| 最近记录: |