#どちらの軸に沿うかを考える
列に沿った処理は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
X.drop('INDUS',axis=1).head()
行に沿ってカラムを選んでいる
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()
列に沿って平均値を計算している
INDUSの場合
→ 2.31 + 7.07 + 7.07 + 2.18 + 2.18 + ..... / データ数
#fillna
X.fillna(0,axis=0)
# X.fillna(0,axis=1)
欠損値に0を入れる処理
この場合axis=0でもaxis=1でも同じ結果になる
axis = 0 は列に沿って数値をチェックしていきNaNがあったら0にする
axis = 1は行に沿って数値をチェックしていきNaNがあったら0にする
#reindex
a.reindex(['c2','c3','c1'], axis=1)
行に沿ってカラムの入れ替えをしている