- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试为神经元网络预处理数据集。因此,我需要将形状为 (2040906, 1) 的数组 reshape 为批处理数组。
我需要大约 1440 行的批量大小,但 2040906 显然不能被该数字整除(余数为零)。
我试图只计算除法的模数并删除与余数一样多的行,这样除法将导致模数为零。但是删除数据集的行并不是我想要做的。
所以这是一个重现问题的示例片段。
import numpy as np
x = np.ones((2040906, 1))
np.split(x, 1440)
对我来说完美的解决方案是某种函数,它返回给定值的最近除数,余数为 0。
最佳答案
不确定这是最优雅的解决方案,但您可以执行以下操作:
def getDivisors(n, res=None) :
res = res or []
i = 1
while i <= n :
if (n % i==0) :
res.append(i),
i = i + 1
return res
getDivisors(2040906)
Out[4]:
[1,
2,
3,
6,
7,
14,
21,
42,
48593,
97186,
145779,
291558,
340151,
680302,
1020453,
2040906]
def get_closest_split(n, close_to=1440):
all_divisors = getDivisors(n)
for ix, val in enumerate(all_divisors):
if close_to < val:
if ix == 0: return val
if (val-close_to)>(close_to - all_divisors[ix-1]):
return all_divisors[ix-1]
return val
def get_closest_split(n, close_to=1440)
Out[6]: 42
在您的情况下,将返回 42 作为唯一最接近 1440 的除数。因此,np.split(x, 42)
应该有效。
关于python - 如何使用模零找到给定值的最近除数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57154745/
我遇到了一个问题,想要了解更多信息以及如何避免。我有这个代码 len :: (Num r ) => [a] -> r len [] = 0 len xs = 1 + len ( tail xs ) a
我知道如何找到给定整数(1 除外)的除数: let smallest_divisor n = let rec aux n i = if i 编辑添加:在平均情况下,第二种方法
这个问题已经有答案了: Why does integer division code give the wrong answer? [duplicate] (4 个回答) 已关闭去年。 在 Java
Welcome to Scala version 2.9.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_26). scala> 1.0 / Doub
我的数据帧结构如下,x_L 和 x_R 对的数量可能最多为 100。 ID Side A_L A_R B_L B_R 1 0 7 5 6 3 2
我的数据帧结构如下,x_L 和 x_R 对的数量可能最多为 100。 ID Side A_L A_R B_L B_R 1 0 7 5 6 3 2
如何使用转换将数字列表除以 2?我以为这段代码可以做到,但它只将整个列表的数字 1 除以 2,所以我一定完全误解了这一点。有人能帮助我吗? :) list v(5, 1); list d; d.res
我目前正在研究如何使用各种现代处理器的快速单精度浮点倒数功能来计算基于定点 Newton-Raphson 迭代的 64 位无符号整数除法的起始近似值。它需要尽可能准确地计算 264/除数,其中初始近似
我是一名优秀的程序员,十分优秀!