正直青年打倒美国消灭日本 發表於 2026-1-8 10:08:53

numpy中axis轴问题记录小结

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">轴的概念</a></li><li><a href="#_label1">解释&ldquo;设axis=i, 则numpy沿着第i个下标变化的方向进行操作&rdquo;</a></li><ul class="second_class_ul"><li><a href="#_lab2_1_0">具体例子说明</a></li><li><a href="#_lab2_1_1">不同轴的操作</a></li></ul><li><a href="#_label2">总结</a></li><ul class="second_class_ul"></ul></ul></div><p>在NumPy中,数组可以有多个维度(或轴)。每个轴代表数据的一个方向。对于一个n维数组,它有n个轴,这些轴是从0开始编号的:</p>
<ul><li><code>axis=0</code>&nbsp;表示第一个维度(最外层)</li><li><code>axis=1</code>&nbsp;表示第二个维度</li><li>以此类推...</li></ul>
<p class="maodian"><a name="_label0"></a></p><h2>轴的概念</h2>
<p>当你对一个数组进行操作时(例如求和、平均值等),你可以指定沿着哪个轴进行操作。如果你不指定轴,则操作会应用于整个数组的所有元素。</p>
<p class="maodian"><a name="_label1"></a></p><h2>解释&ldquo;设axis=i, 则numpy沿着第i个下标变化的方向进行操作&rdquo;</h2>
<p>这句话的意思是说,当你设置<code>axis=i</code>时,NumPy会在第i个维度上进行操作,即沿着该维度的变化方向进行操作。换句话说,NumPy会对该维度上的所有元素执行指定的操作,而其他维度保持不变。</p>
<p class="maodian"><a name="_lab2_1_0"></a></p><h3>具体例子说明</h3>
<p>三维数组为例:</p>
<div class="jb51code"><pre class="brush:py;">arr = np.array([[[ 0,1],
               [ 2,3],
               [ 4,5],
               [ 6,7]],

                [[ 8,9],
               ,
               ,
               ]])</pre></div>
<p>这个数组的形状是 <code>(2, 4, 2)</code>,表示它有两层(第一维度),每层有四行(第二维度),每行有两个元素(第三维度)。</p>
<p class="maodian"><a name="_lab2_1_1"></a></p><h3>不同轴的操作</h3>
<p><code>axis=0</code>:沿着最外层维度(第一维度)进行操作。</p>
<ul><li>这意味着我们会将两个子数组(页)对应位置的值相加。</li><li>结果是一个形状为&nbsp;<code>(4, 2)</code>&nbsp;的数组:</li></ul>
<div class="jb51code"><pre class="brush:py;">array([[ 8, 10],
       ,
       ,
       ])</pre></div>
<p><code>axis=1</code>:沿着中间维度(第二维度)进行操作。</p>
<ul><li>这意味着我们会将每一层内每一列的值相加。</li><li>结果是一个形状为&nbsp;<code>(2, 2)</code>&nbsp;的数组:</li></ul>
<div class="jb51code"><pre class="brush:py;">array([,
       ])</pre></div>
<p><code>axis=2</code>:沿着最内层维度(第三维度)进行操作。</p>
<ul><li>这意味着我们会将每一层内每一个小数组内的值相加。</li><li>结果是一个形状为&nbsp;<code>(2, 4)</code>&nbsp;的数组:</li></ul>
<div class="jb51code"><pre class="brush:py;">array([[ 1,5,9, 13],
       ])</pre></div>
<p class="maodian"><a name="_label2"></a></p><h2>总结</h2>
<ul><li>axis=0:沿着第一个维度(最外层)进行操作,即对每一列的元素进行操作。</li><li>axis=1:沿着第二个维度(中间层)进行操作,即对每一行的元素进行操作。</li><li>axis=2:沿着第三个维度(最内层)进行操作,即对每个小数组内的元素进行操作。</li></ul>
<p><strong>关键点</strong>:当你设置<code>axis=i</code>时,NumPy会沿着第i个维度进行操作,这意味着在这个维度上的所有元素会被聚合在一起进行操作(如求和、平均等),而其他维度保持不变。这适用于任何维度的数组,不仅仅是二维数组。通过这种方式,你可以灵活地控制数据如何被处理和聚合。</p>
頁: [1]
查看完整版本: numpy中axis轴问题记录小结