Edited at

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


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

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

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