分析環境を作ってみた
pyenvとanacondaを共存させる時のactivate衝突問題の回避策3種類
- pyenvを使わない。
決定版は基本的にこの方法を紹介しています。 この方法ではpyenvはanacondaのインストーラとしてのみ使います。 pyenv経由でanacondaをインストール後に、pathへanacondaのインストールpathを書き込んで、pyenvを無視させます。 $ echo 'export PATH="$PYENV_ROOT/versions/anaconda3-2.5.0/bin/:$PATH"' >> ~/.bashrc メリット: 一番設定が少なく、覚えることが少ない。 デメリット: pyenv localが使えない。 この方法では、pathを設定した後はpyenvを全く意識することがなくなります。 環境切り替えは全部source activateを用います。
mac買ったのでhomevrewを使っていろいろ入れた
まずはxcodeをapplestoreからインストールして
$ xcode-select --install
からCommand Line Toolsをインストールしておく。
参考にさせていただきました。
新卒エンジニア向け:Macにインストールすべきアプリ達 ベーシック エンジニアブログ Basic->deploy('blog');
Python | irisのデータセットについて
この記事に書いてあること
- scikit-learnライブラリの中のirisのデータのまとめと簡単な使い方
はじめに
PythonはRと違ってデータの型?ごとに使えるメゾットが違うのでこんがらがってしまうので個人的にまとめてみました。
コードについて
# scikit-learnライブラリのデータセットを呼び込む準備 from sklearn import datasets # irisのデータセットをirisに入れる iris = datasets.load_iris() print(iris.data) #省略 #[[ 5.1 3.5 1.4 0.2] #[ 4.9 3. 1.4 0.2] #[ 4.7 3.2 1.3 0.2] # [ 4.6 3.1 1.5 0.2] # [ 5. 3.6 1.4 0.2] # [ 5.4 3.9 1.7 0.4] # [ 4.6 3.4 1.4 0.3] # [ 5. 3.4 1.5 0.2] # [ 4.4 2.9 1.4 0.2] # [ 4.9 3.1 1.5 0.1] # [ 5.4 3.7 1.5 0.2] # ... type(iris.data) # numpy.ndarray #irisの説明が出力される print(iris.DESCR) #特徴量のラベルを返してくれる print(iris.feature_names) #['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'] #クラスラベルの習得 print(iris.target) #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2] #アヤメの名前 print(iris.target_names) ['setosa' 'versicolor' 'virginica']
Python | pandasのデータ型について
この記事に書いてあること
- pandasの概要について
- pandasのデータ型(シリーズ、データフレーム、パネル)について
はじめに
Rでずっとdplyrを使っていたのでデータフレーム型を使えるpandasはとても重宝しています。 今回はpandasについてまとめてみます。
Pythonのライブラリpandasの概要
Pandasの名前の由来はpan(el)-da(ta)-sというらしいです。
パンダ好きがつけたと思っていたのですがそういうわけではないようですw
一応公式はこちら
pandasでできる処理は以下のようなことになるようです。
- データを入出力する機能(csv, tsv, RDB, HDF5, Excelなど)
- データを効率よく高速に処理できる形式でデータを格納
- データの一部取り出しや結合
- データの柔軟な変更やピボット処理
- データに対する統計処理や回帰処理など
- データの集約とグループ演算
それぞれについては別のところでまとめようと思います。
データ型について
pandasはデータを保持しておくデータ構造は、1次元、2次元、3次元のデータの格納に適した形になっており、それぞれ シリーズ、データフレーム、パネル の形式で全3種類のがあります。
シリーズ
シリーズは1次元のデータ保存用のデータ構造。下のように数値だけでなく文字も混在して中に入れることができます。
In[1]: dat = pd.Series([1, 'apple', range(3)]) In[2]: print(dat) Out[2]: 0 1 1 apple 2 (0, 1, 2) dtype: object
一応データ型を確認すると、
# データ型の確認 In[]: type(dat) Out[]: pandas.core.series.Series # 配列のサイズの確認 In[]: dat.shape Out[]: (3,)
こんな感じです。
データフレーム
データフレームは2次元のラベル付きデータ構造です。エクセルみたいなイメージですね。
# dict型としてデータを格納 In[1]: dat2 = {'自転車':['Anchor', 'GIANT', 'Bianchi'], 'size':[490, '', 'その他']} # dict型からデータフレームに変換 In[2]: dat2 = pd.DataFrame(dat2)
一応データ型を確認すると、
# データ型の確認 In[]: type(dat2) Out[]: pandas.core.frame.DataFrame # 配列のサイズの確認 In[]: dat2.shape Out[]: (3, 2)
こんな感じです。
Python | モジュールとパッケージのimportについて
この記事に書いてあること
- モジュールとパッケージのimportのパターンまとめ
はじめに
私はRを研究などでたくさん使っていたのですが、Pythonははじめてなので備忘。
Pythonの初心者すぎてパッケージのインストールから私はググりましたw
Pythonの基礎的な本も見てもimportの使い方が意外ときれいにまとまってなくて意外と悲しかったのでまとめてみました。
モジュールのimportについて
- import [モジュール名]
- import [モジュール名] as [別名]
- from [モジュール名] import [メンバ名1], [メンバ名2], ...
- from [モジュール名] import *
- from [モジュール名] import [メンバ名] as [別名]
- import [モジュール名1], [モジュール名2], ...
パッケージのimportについて
- import [パッケージ名]
- import [パッケージ名] as [別名]
- from [パッケージ名] import [パッケージ名1], [パッケージ名2], ...
- from [パッケージ名] import *
- from [パッケージ名] import [モジュール名] as [別名]
- import [パッケージ名1], [パッケージ名2], ...
- import [パッケージ名 . モジュール名]
- import [パッケージ名 . モジュール名] as [別名]
参考
R | フォルダの中のデータ(.dbf, .csv等)を大量に読み込む方法
library(foreign) df <- read.dbf("C:/~~~~/***.dbf", as.is = T) # as.is = T :factorではないとする # factorのままにすると色々と悪さをするのでできるだけ外しておく
2. フォルダの中(ファイルの形式が同じ)を全て読み込む方法
setwd("C:/~~~") #該当のフォルダに行く library(foreign) #dbfをRで開けるようにする files <- dir() #該当フォルダ内のディレクトリを入れておく for (i in 1: length(files)){ h <- paste("C:/~~~/", files[i], sep = "") #sep = "":pasteの際に空白を消す #hの中に該当ファイルまでのパスを入れる df <- read.dbf(h, as.is = T) #上記と同様 #csvならread.csv #今回の場合はたくさんのファイルをひとつのファイルにまとめたい if(i == 1){ DF <- df } else{ DF <- rbind(DF, df) } }