lupinus's diary

港区のデータサイエンティスト、縫物したり自転車に乗るのが好きな人の色んな記録を行う予定のブログ

分析環境を作ってみた

qiita.com

qiita.com

pyenvとanacondaを共存させる時のactivate衝突問題の回避策3種類

  1. 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をインストールしておく。

参考にさせていただきました。

brew.sh

MacにHomebrewをインストールする

新卒エンジニア向け: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について

  1. import [モジュール名]
  2. import [モジュール名] as [別名]
  3. from [モジュール名] import [メンバ名1], [メンバ名2], ...
  4. from [モジュール名] import *
  5. from [モジュール名] import [メンバ名] as [別名]
  6. import [モジュール名1], [モジュール名2], ...

パッケージのimportについて

  1. import [パッケージ名]
  2. import [パッケージ名] as [別名]
  3. from [パッケージ名] import [パッケージ名1], [パッケージ名2], ...
  4. from [パッケージ名] import *
  5. from [パッケージ名] import [モジュール名] as [別名]
  6. import [パッケージ名1], [パッケージ名2], ...
  7. import [パッケージ名 . モジュール名]
  8. import [パッケージ名 . モジュール名] as [別名]

参考

科学技術計算のためのPython入門――開発基礎,必須ライブラリ,高速化

R | 地理情報のビジュアライゼーション及び加工(1)

地理情報の種類について

  • 緯度経度
  • メッシュコード
  • GIS

GISとは

地理情報システム(GIS:Geographic Information System)の略称。
地理空間情報とは、空間上の特定の地点又は区域の位置を示す情報(位置情報)とそれに関連付けられた様々な事象に関する情報、もしくは位置情報のみからなる情報をいう。地理空間情報には、地域における自然、災害、社会経済活動など特定のテーマについての状況を表現する土地利用図、地質図、ハザードマップ等の主題図、都市計画図、地形図、地名情報、台帳情報、統計情報、空中写真、衛星画像等の多様な情報がある。
引用元:GISとは・・・|国土地理院

R | フォルダの中のデータ(.dbf, .csv等)を大量に読み込む方法

  1. dbfファイルをRで読み込む方法
  2. フォルダの中身(ファイルの形式が同じ場合)を全て読み込む方法

    1. dbf をRで読み込む方法

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)
  }
}