擅长:python、mysql、java
<p>如果我正确理解了<a href="https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html" rel="nofollow noreferrer">^{<cd1>}</a>的工作原理,那么它可以在独立的数组上运行,这些数组沿着<code>axis=0</code>减少</p>
<p>为了使其对您的案例有用,您需要将<code>X</code>转换为<code>(64 * 64, 100)</code>数组:</p>
<pre><code>s = X.shape
X = np.moveaxis(X, 0, -1).reshape(-1, s[0])
</code></pre>
<p>或者,你可以写</p>
<pre><code>X = X.reshape(s[0], -1).T
</code></pre>
<p>现在,您可以使用</p>
<pre><code>M = MinMaxScaler()
X = M.fit_transform(X)
</code></pre>
<p>由于实际拟合是在第一个维度上计算的,因此所有结果的大小都将为100。由于最后一个维度的大小相同,因此这将完美地广播</p>
<p>要恢复原始形状,请反转原始变换:</p>
<pre><code>X = X.T.reshape(s)
</code></pre>
<p>完成后,<code>M</code>将是一个为100个特性校准的定标器。这里不需要词典。请记住,由整数序列键控的字典可以更好地表示为列表或数组,这里就是这样</p>