我有一个长度为 y (y = 7267) 的值数组。我正在根据 x (x = 24) 拆分数据,如下所示。我在这里遗漏了一些值,因为 7267/24 给出了 302,而不是 302.8。这是因为我采用整数值。如果我在第 3 行设置int为float,则会出现错误TypeError: 'float' object cannot be interpreted as an integer。如何在不丢失 y 中的任何值的情况下运行以下代码?或者也许有更好的方法来像这里一样拆分数据?import numpy as npy = np.random.rand(7267)samples = len(y)x = 24trim = samples % xsubsequences = int(samples/x)sequence_trimmed = y[:samples - trim]sequence_trimmed.shape = (subsequences, time_steps, 1)
4 回答
ITMISS
TA贡献1871条经验 获得超8个赞
使用
subsequences = samples // x
//
是整数除法,所以它会返回一个整数 exp。
var // x + var % x = var / x
眼眸繁星
TA贡献1873条经验 获得超9个赞
模运算 ( %) 仅针对整数定义,这就是为什么不能将其更改为浮点数的原因。数组也只采用 (integer,integer) 形状。如果我对你的理解是正确的,并且你想要一个专(x, z)为一些人设计的数组z并且肯定会占用你的所有数据,那么引入一些零怎么样?所以
z=samples//x+1
array=np.zeros(x*z)
array[:samples]=y
np.reshape(array,(x,z))
可能会成功吗?
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
这?
import numpy as np
y = np.random.rand(7267)
samples = len(y)
x = 24
trim = samples % x
subsequences = samples//x
sequence_trimmed = y[:samples - trim]
sequence_trimmed.shape = (subsequences, x)
月关宝盒
TA贡献1772条经验 获得超5个赞
In [28]: import numpy as np ...: ...: y = list(range(7267)) ...: samples = len(y) ...: x = 24 ...: ...: trim = round(samples / x) ...: subsequences = int(samples/x) ...: sequence_trimmed = y[:samples - trim] ...:
添加回答
举报
0/150
提交
取消