numpy、pandas的 axis 理解

axis为轴的意思,但是在使用中如 :

np.argmax()
df.drop()

都会使用到axis参数,不同的axis(0,1)参数会得到不同的结果,这里对axis参数的理解做一个记录。

axis=1:表示水平方向的计算结果

axis=0:表示垂直方向的计算结果

  1. Pandas 
import pandas as pd
df = pd.DataFrame([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], \
columns=["col1", "col2", "col3", "col4"])
df
Out[4]: 
   col1  col2  col3  col4
0     1     1     1     1
1     2     2     2     2
2     3     3     3     3

 

当要删除某行或某列数据时:

df.drop('col1')

不传入axis参数,会报错:

Traceback (most recent call last):
  File "F:\Anaconda\lib\site-packages\IPython\core\interactiveshell.py", line 2881, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-19-3a5fa415d3b8>", line 1, in <module>
    df.drop('col1')
  File "F:\Anaconda\lib\site-packages\pandas\core\generic.py", line 2050, in drop
    new_axis = axis.drop(labels, errors=errors)
  File "F:\Anaconda\lib\site-packages\pandas\core\indexes\base.py", line 3575, in drop
    labels[mask])

axis=1时,需传入表头值,会在水平方向选择表头删除整列

df.drop('col1', axis=1)
Out[20]: 
   col2  col3  col4
0     1     1     1
1     2     2     2
2     3     3     3

axis=0时,需传入行号,会在垂直方向选择行号删除整行

f.drop(2, axis=0)
Out[21]: 
   col1  col2  col3  col4
0     1     1     1     1
1     2     2     2     2

2. Numpy

array=np.array([[1,3,2],[4,5,8],[10,0,3]])
array
Out[16]: 
array([[ 1,  3,  2],
       [ 4,  5,  8],
       [10,  0,  3]])

np.argmax()来计算最大值的下标

 axis=1时,为每行的最大值

axis=0时,为每列的最大值

不传axis时为整个矩阵最大值的顺序索引

np.argmax(array, axis=0)
Out[17]: array([2, 1, 1], dtype=int64)
np.argmax(array, axis=1)
Out[18]: array([1, 2, 0], dtype=int64)
np.argmax(array)
Out[22]: 6

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值