Pythonを一から勉強してデータ分析できるようになる

~ Pythonとデータ分析のお勉強の記録 ~

機械学習:機械学習のプログラムを作る~前回プログラムの練習

[Take1] 塊データ~テストデータの塊数を4にしてみる。 【書式】 X,y=make_blobs( random_state=0, # ランダムの種 n_features=2, # 特徴量の数 centers=4, # 塊の数 cluster_std=1, # ばらつき n_samples=600 # データ数 ) 【コード】 %matplotlib inline i…

機械学習:機械学習のプログラムを作る

流れ [Take1] 学習用のデータを作成する [Take2] データを学習用とテスト用に分ける [Take3] SVM(サポートベクターマシン)を使って学習する [Take4] 学習結果を使ってテストデータの分類を予測する [Take5] 正答率を調べる(そういう機能の関数がある) [T…

機械学習:回帰用データを作成する

[Take1] まずはノイズオプションをゼロにして作ってみる 【書式】 書式:回帰データの生成 make_regression(ランダムの種, 特徴量, ノイズ, y切片, データ個数) 書式:列の追加 df["列名"]=y 【コード】 %matplotlib inline import matplotlib.pyplot as plt…

機械学習:同心円のデータを作る

[Take1] 3つのグループのデータを作る 【書式】 make_gaussian_quantiles() 【コード】 %matplotlib inline import matplotlib.pyplot as plt from sklearn.datasets import make_gaussian_quantiles import pandas as pd # 特徴量 X、分類 y のデータ作成 X…

機械学習:二重円のデータを作成する

[Take1] noise=0 のデータを作成する 【書式】 make_circles() 【コード】 %matplotlib inline import matplotlib.pyplot as plt from sklearn.datasets import make_circles import pandas as pd # 特徴量 X、分類 y のデータ作成 X,y=make_circles( random…

機械学習:三日月型のデータを作成する

[Take1] とりあえず作成する 【書式】 make_moons() 【コード】 %matplotlib inline import matplotlib.pyplot as plt from sklearn.datasets import make_moons import pandas as pd # 特徴量 X、分類 y のデータ作成 X,y=make_moons( random_state=3, # ラ…

機械学習:塊のデータセットの生成

種類別のコード [Take1] 「塊」のデータセットを作る 【書式】 書式:データ生成 特徴量,目的変数=make_blobs(パラメータ) 書式:カラム名変更 df= df.rename(columns={変更前: 変更後}) ※複数ある時は、{}内を「,」でつなげる。 【コード】 from sklearn.da…

機械学習:sklearn で提供されるアヤメデータを操作する

以前見たのは、seaborn で提供されているアヤメデータ。 [Take1] sklearnのアヤメデータを読み込む 【書式】 【コード】 from sklearn import datasets iris=datasets.load_iris() print(iris) 【結果】 {'data': array([[5.1, 3.5, 1.4, 0.2], [4.9, 3. , 1…

NumPyの基本:配列の変形(reshape, resize)

[Take1] 配列の変形(1) reshape() 【書式】 numpy.reshape(配列, 変形したい配列の形状) ★要素数の変更不可 【コード】 import numpy as np # 乱数の固定 np.random.seed(0) # 元配列作成 arr1=np.random.randint(1,10,(2,3,4)) print("変形前\n",arr1) prin…

NumPyの基本:配列の平坦化

[Take1] 配列の平坦化(1) ravel() 【書式】 配列.ravel() 【コード】 import numpy as np # 乱数の固定 np.random.seed(0) # 元配列作成 arr1=np.random.randint(1,10,(2,3,4)) print("平坦化前\n",arr1) print("\n\n") print("平坦化後\n",arr1.ravel()) 【…

NumPyの基本:配列の形状

[Take1] 配列の形状オプション 【書式】 【コード】 import numpy as np # 乱数の固定 np.random.seed(0) # 元配列作成 arr0=np.random.randint(1,10,(2)) arr1=np.random.randint(1,10,(2,3)) arr2=np.random.randint(1,10,(2,3,4)) arr3=np.random.randint…

NumPyの基本:配列の転置

元の行列のi行j列の要素が、j行i列の要素になった行列 [Take0] 転置のパターン3通り 【書式】 np.transpose(配列, 形状) 配列.transpose() 配列.T 【コード】 import numpy as np # 乱数の固定 np.random.seed(0) # 元配列作成 arr1=np.random.randint(1,10,…

NumPyの基本:配列データの複製

[Take1] 別の変数に代入する 【書式】 配列2=配列1 単純に参照しているだけらしい。配列1の中身を変更すると、配列2も変わってしまう。逆も然り。 【コード】 import numpy as np # 元配列作成 arr1=np.array([1,2,3,4]) print("①オリジナルのarr1=",arr1,"\…

NumPyの基本:NumPy のデータ型

[Take0] データ型いろいろ [Take1] 配列で使用されているデータ型の確認 dtype() 【書式】 配列.dtype 【コード】 import numpy as np # 乱数の固定 np.random.seed(0) # 乱数の行列作成 arr1=np.random.randint(1,10,(3,4)) # 配列を表示 print("arr1=\n",a…

NumPyの基本:使い方(3) 特殊な配列を作る

[Take1] 乱数を要素に持つ配列を作る rand() 関数 【書式】 numpy.random.rand(配列の形状) ※rand()関数は0以上1未満の乱数を出力 【コード】 import numpy as np # 配列を作る arr1 = np.random.rand(3) # 長さ3のベクトル arr2 = np.random.rand(2,3) # 2…

NumPyの基本:使い方(2) 配列を作る

[Take1] 空の配列を作る 【書式】 np.empty(引数) 引数 0:空の配列を作る (n,m):(n,m)の形状の配列を作る 【コード】 import numpy as np arr1 = np.empty(0) arr2 = np.empty( (2,3) ) print(arr1) print(arr1.shape) print("\n") print(arr2) print(arr2…

NumPyの基本:使い方(1) 計算する

[Take1] 配列(nparray)の作成 【書式】 np.array(オブジェクト) 【コード】 import numpy as np # 1x3の配列を作る arr1=np.array([1,2,3]) print(arr1) print(type(arr1)) print(arr1.shape) print("\n") # 2x3の配列を作る arr2=np.array([[1,2,3],[4,5,…

リスト、タプル、ディクショナリ:メソッド

[Take1] リスト末尾に値を追加 append 【書式】 リスト.append(値) 【コード】 # リストを作る list1=[100,"20",30,40,50] # 「天才」と言う文字列を末尾に追加 list1.append("天才") # 結果を表示 print(list1) 【結果】 [100, '20', 30, 40, 50, '天才'] […

リスト、タプル、ディクショナリ:関数と演算子

[Take1] データ構造の要素の数を返す len() 関数 【書式】 len(オブジェクト) 【コード】 # リストを作る list1=[10,20,30,40,50] # リストの要素の合計を表示する print(sum(list1)) # リストの要素数を表示する print(len(list1)) # リスト内要素の平均を…

リスト、タプル、ディクショナリ

よく見かけるので、定義のようなものを整理しておく。 【書式】 リスト:値の集合、編集可能 【コード】 # リストを作る list1=[10,20,30,40,50] # リストを表示する print(list1) print(type(list1)) # リストの2番目の要素を表示する print(list1[1]) # リ…

スクレイピング:画像ファイルを読み込んで保存する

ファイル保存の基本的な考え方は次の通りだと思う。 1.保存先ファイルをフルパスで定義する 2.そのファイルに保存するデータを指定する 3.ファイル作成(保存) [Take1] まずは、普通に画像を読み込んで保存する。 【書式】 imgdata=requests.get(画像URL) w…

スクレイピング:オーディオヴィジュアル製品のパッケージ画像URLを取得する

商品コードを検索キーにして、商品紹介ページにあるパッケージ画像のURLを取得したい。 amazonとかの著名ecサイトでは弾かれてしまうが、一応、動作したのでメモしておく。 (実際URLは伏せておく) [TAKE1] まずは、コード番号から検索用のURLを生成し、その…

スクレイピング:リンクの抽出と加工

[Take0] とりあえず、リンクタグ(href)を抜き出す。 【書式】 値=要素.get("属性名") 例) <a href="https://20200105.hatenadiary.jp/entry/2024/04/14/154750">直リンク</a> 要素:<a href="https://20200105.hatenadiary.jp/entry/2024/04/14/154750">直リンク</a> 属性名:a 値:https://20200105.hatenadiary.jp/entry/2024/04/14/154750 値=要素.get("属性名") 例)

スクレイピング:実際のニュースサイトのトピックリスト取得

yahooニュースのトピックリスト情報の取得 【書式】 問題あると困るのでアドレスは架空のもので記述する。 【コード】 import requests from bs4 import BeautifulSoup # webページを取得して解析する load_url="https://news.yahho.co.jp/categories/it" ht…

スクレイピング:Beautifiul Soup を使って、HTMLの解析を行ってみる

[Take0] やりたいことのイメージ [Take1] とりあえず、HTML取得して表示する BeautifulSoupとはHTML解析用のライブラリらしい。 【書式】 BeautifulSoup(解析対象のHTML/XML, 利用するパーサー) https://ai-inter1.com/beautifulsoup_1/ パーサ(parser)と…

スクレイピング:取得したデータをファイルに書き込む

[Take1] 所定URLのソース文字コードを保存する 【書式】 f=open(filename,mode="w") f.write(書き込む値) f.close() openのオプション(表形式で書いてみる) 【コード】 import requests url="https://20200105.hatenadiary.jp/entry/2024/04/30/152528" re…

dfの操作:dfの結合

[Take0] 事例用dfの作成 【書式】 【コード】 import pandas as pd # テスト用dfの作成 df1 = pd.DataFrame({'学生番号': ['001','002','003','004'], '試験結果': ['不合格','合格','合格','合格'], '試験区分':['A','B','C','A']}) df2 = pd.DataFrame({'…

dfの操作:データクレンジング

[Take1] データの欠損を確認する 【書式】 df.isnull() 【コード】 import pandas as pd # テストデータの読み込み df = pd.read_csv("/content/drive/MyDrive/Python_2024/004/test6.csv",encoding="shift_jis") # データの欠損を確認する df.isnull() 【結…

dfの操作:データの削除と修正

[Take1] 特定の列を削除する 【書式】 列の削除 df.drop(columns="削除する列名") dfのコピー(バックアップ的なもの) df.copy() 複数列を削除する場合は、「列名のリスト」を引数に渡す 【コード】 import pandas as pd # テスト用dfの作成 list1=[[1,2,3,…

dfの操作:データの「行」の追加

[Take0] テスト用のDFを作成する 列数が4で、行数が3のdfを作る 【書式】 【コード】 import pandas as pd # テスト用dfの作成 list1=[[1,2,3,4],[5,6,7,8],[9,10,11,12]] index1 = ["Row1", "Row2", "Row3"] columns1 =["Col1", "Col2", "Col3", "Col4"] …