LoginSignup
174
160

More than 5 years have passed since last update.

axis = 0, axis=1 がわからなくなった人へ

Last updated at Posted at 2019-01-23

どちらの軸に沿うかを考える

image.png

列に沿った処理はaxis=0
行に沿った処理はaxis=1

sum


a = np.array([[1,2,3],
             [4,5,6]])
print(a)

[[1 2 3]
[4 5 6]]


np.sum(a, axis=0)

array([5, 7, 9])

列に沿って足し算している(1+4, 2+5, 3+6)

np.sum(a, axis=1)

array([ 6, 15])

行に沿って足し算している (1+2+3, 4+5+6)

repeat


np.repeat(a,3, axis=0)

array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3],
[4, 5, 6],
[4, 5, 6],
[4, 5, 6]])

列に沿って広げている


np.repeat(a,3, axis=1)

array([[1, 1, 1, 2, 2, 2, 3, 3, 3],
[4, 4, 4, 5, 5, 5, 6, 6, 6]])

行に沿って広げている

drop

image.png


X.drop('INDUS',axis=1).head()

image.png

行に沿ってカラムを選んでいる
CRIM → ZN → INDUS → CHAS → ・・・

・axis=0だとエラーになる

Imputer

数値が0の場合、平均値を入れるという処理をするImputer
*本来は欠損値に適用するが今回は視覚的にわかりやすいように


from sklearn.preprocessing import Imputer
imp = Imputer(missing_values=0, strategy='mean', axis=0)
imp.fit(X)

X_columns = X.columns.values
X = pd.DataFrame(imp.transform(X), columns=X_columns)

X.head()

image.png

列に沿って平均値を計算している
INDUSの場合
→ 2.31 + 7.07 + 7.07 + 2.18 + 2.18 + ..... / データ数

fillna

image.png

X.fillna(0,axis=0)
# X.fillna(0,axis=1)

欠損値に0を入れる処理
この場合axis=0でもaxis=1でも同じ結果になる
axis = 0 は列に沿って数値をチェックしていきNaNがあったら0にする
axis = 1は行に沿って数値をチェックしていきNaNがあったら0にする

reindex

image.png


a.reindex(['c2','c3','c1'], axis=1)

image.png

行に沿ってカラムの入れ替えをしている

174
160
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
174
160