按列减去Numpy数组

时间:2017-01-30 23:01:29

标签: python arrays numpy

所以我有一个示例数组,比如说:

import numpy as np
np.array([[[ 85, 723]],
          [[ 86, 722]],
          [[ 87, 722]],
          [[ 89, 724]],
          [[ 88, 725]],
          [[ 87, 725]]])

我想要做的是仅从第二列中减去一个数字,例如10。我希望输出看起来像这样:

np.array([[[ 85, 713]],
          [[ 86, 712]],
          [[ 87, 712]],
          [[ 89, 714]],
          [[ 88, 715]],
          [[ 87, 715]]])

我尝试过使用np.subtract,但它不支持沿轴进行减法(至少据我所知)。

2 个答案:

答案 0 :(得分:5)

切片和减法 -

<html>
<head>
  <link rel="stylesheet" type="text/css" href="estilo.css">
<title>Nuevo cliente</title>
</head>

<body>
<h1>Introduzca los datos del nuevo cliente</h1>
<br/>


<form  action="procesar_form.php" method="post">

                <table> 

                    <tr>
                        <td>Nombre</td>
                        <td><input type="text" name="nombre"></td>
                    </tr> 

                    <tr>
                        <td>Direcci&oacuten</td>
                        <td><input type="text" name="direccion"></td>
                    </tr>

                     <tr> 
                        <td>Tel</td> 
                        <td><input type="text" name="tel"></td> 
                    </tr>
                    <tr> 
                        <td colspan="2" class="submit"> 
                            
                            <input align="center" type="submit" value="Enviar"> 
                        </td> 
                    </tr> 

                </table> 
        </form>
</body>

</html>

这适用于从第二列中减去任意数量维的数组。

示例运行 -

a[...,1] -= 10

答案 1 :(得分:2)

对指定的索引进行就地减法(在这种情况下,我索引整个列):

>>> arr[:, :, 1] -= 10

>>> arr
array([[[ 85, 713]],
       [[ 86, 712]],
       [[ 87, 712]],
       [[ 89, 714]],
       [[ 88, 715]],
       [[ 87, 715]]])

当您指定out

时,也适用于np.subtract
>>> np.subtract(arr[:, :, 1], 10, out=arr[:, :, 1])