見出し画像

【2024年版最新】今あなたが使うべきPythonのバージョンは○○です


Pythonのバージョンについて

Pythonの現在の最新バージョンは3.12です。

じゃあ、これ使えばいいか。→ はい。

ちょっと待ってほしい(笑)  一応バージョンについての説明を受けたうえで最新バージョンを使用してください。

まずはこちらの画像をご覧ください。こちらはPythonのバージョンがいまどこのステータスなのかを一覧化したものです。

https://devguide.python.org/versions/#versions より

簡単に説明しますと

  • 赤色→バグが起きても対応しないよ

  • 黄色→セキュリティ対策だけするよ

  • 緑色→新機能も追加するしバグも直すしセキュリティも頑張る

  • 青色→最新のそのまたさらに最新。バグが含まれてる可能性が高いけど、新機能が一足先に体験できるよ

といったところです。よくstableバージョンや安定バージョンとかいうのは、緑色の部分を指しています。

ですので、特に要件がない場合はstableバージョンである、3.12を利用するのが間違いありません。

ちなみに、「3.12.xx」といった感じでxxに数字が入るものを使うと思いますが、こちらは一番数字が大きいモノ(つまり最新)を使っていれば問題ないです。

人には人のバージョン

とはいえですが、Pythonって色々できるわけです。AIであったりとかwebシステム開発であったりとか、スクレイピングであったりとか。

そんな、数多くの役割をこなせるPythonを助けているのがライブラリです。ライブラリにはたくさんの種類がありますが、実はこのライブラリ、更新されていなかったりすると、最新バージョンのPythonでは動かないことがあります。

逆に、あるバージョン以降でしか使えないといったライブラリもあります。

例えば、PytorchTensorflowはAI開発で必ずと言っていいほどお世話になるライブラリですが、これらにはPythonのバージョン指定があります。

Pytorch → 3.8以上
Tensorflow → 3.6 ~ 3.9

です。これ以外にもライブラリによってバージョンを変更しなくてはいけない場合があるので、あらかじめどんなライブラリを使うか決まっている場合は、Pythonのバージョンの確認も忘れずに行っておくと、手戻りが少なくて済みます。

これで、インストールすべきPythonがわかりましたね。と、いうことは?次はPythonを使ってなにをしようかとなるわけですね^^

最短で学ぶならやっぱり書籍

さて、インストールすべきPythonのバージョンもわかったことですし、次はどのように勉強を進めていくか。

SNSやインターネットを見ると

「Qiita見て真似しろ」
「Udemyがおすすめ」
「Githubのスターが多いやつを写経しろ」

などなど、たくさん出てきますが個人的にはどれもお勧めしません。私がおすすめするのは 書籍 です。なぜ書籍が優れているのか3点ご紹介します。

書籍が優れている理由

  1. 情報の取捨選択を自分でしなくていい

  2. コストパフォーマンスに優れている

  3. 目標が立てやすい

順に説明していきます。

まずは1つ目。「情報の取捨選択を自分でしなくていい」についてです。これは、ネットで検索するとなにが大事でなにが大事じゃないか、初めての型には判断がつかないためです。あれこれ調べていき、本当に大事なものを探すことは、もちろん力にはなると思いますが決して最短ではないと思います。

次に2つ目。「コストパフォーマンスに優れている」についてです。書籍はどんなに高くても1冊1万円くらいで収まります。入門書であれば2,000円もあればおつりがくるでしょう。
それなのに、巷には高額の情報商材がたくさんあります。もちろんきちんとしたものあるかと思いますが、私自身が書籍を買って学んできて、現在エンジニアとして生活していけていることを考えると、勉強にお金はそこまでかからないと思います。

最後に、「目標が立てやすい」についてです。こちら、モチベーションにかかわる話です。プログラミングはいわば外国語を学ぶようなもの。それにはたくさんの苦難が待ち受けています。
それ相応の達成感がないと、継続していくことは困難でしょう。書籍での勉強は進捗がページ数として現れます。これは意外と馬鹿にできない観点で、達成感の一助となることでしょう。

以上が私が書籍を推す理由です。下記におすすめの書籍をいくつかピックアップしておきました。なにを選んだらいいかわからない方は参考にしてみてくだしさい。後悔させません。

おすすめ書籍


まずは 超初心者 向けです。

「Python1年生 第2版 体験してわかる!会話でまなべる!プログラミングのしくみ」

ページ数は200ページ。イラストが多用されていて、初めて読む本として最適だと思います。まずはこちらを手に取ってみて、プログラムを実際に動かすことを体験してみましょう。

【目次】
第1章 Pythonで何ができるの?
第2章 Pythonを触ってみよう
第3章 プログラムの基本を知ろう
第4章 アプリを作ってみよう
第5章 人工知能くんと遊んでみよう

次に、初級者~中級者 向けです。

「スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)」

416ページ とかなりのボリュームになっています。ただし、これ一冊マスターすればPythonをマスターしたといっていいです。スッキリわかるシリーズと言えば、界隈ではかなり有名です。かなり本格的な内容であるのに、わかりやすい説明が特徴です。

超初心者が入門書を終えた後に、本格的にプログラムを学ぶにはこちらがおすすめです。また、講義などでプログラムを触ったことがあるといった方もこちら選んでいただければと思います。

【目次】
本書の見方
第0章 ようこそPythonの世界へ
0.1 ようこそPythonの世界へ
0.2 はじめてのプログラミング
0.3 Pythonプログラミングの基礎知識
■第Ⅰ部 Pythonの基礎を学ぼう
第1章 変数とデータ型
1.1 式と演算
1.2 変数
1.3 データ型
第2章 コレクション
2.1 データの集まり
2.2 リスト
2.3 ディクショナリ
2.4 タプルとセット
2.5 コレクションの応用
第3章 条件分岐
3.1 プログラムの流れ
3.2 条件分岐の基本構造
3.3 条件式
3.4 分岐構文のバリエーション
第4章 繰り返し
4.1 繰り返しの基本構造
4.2 for文
4.3 繰り返しの制御
■第Ⅱ部 Pythonで部品を組み上げよう
第5章 関数
5.1 オリジナルの関数
5.2 引数と戻り値
5.3 関数の応用テクニック
5.4 独立性の破れ
第6章 オブジェクト
6.1 「値」の正体
6.2 オブジェクトの設計図
6.3 オブジェクトの落とし穴
第7章 モジュール
7.1 部品を使おう
7.2 組み込み関数
7.3 モジュールの利用
7.4 パッケージの利用
7.5 外部ライブラリの利用
第8章 まだまだ広がるPythonの世界
8.1 Pythonの可能性
8.2 Pythonの基礎を学び終えて
付録A sukkiri.jpについて
付録B エラー解決・虎の巻

最後は、データサイエンスを学びたい方向けです。

「[第3版]Python機械学習プログラミング 達人データサイエンティストによる理論と実践 impress top gearシリーズ」

688ページ数と紹介してきた中で最大のボリューム感。こちらはデータサイエンスを勉強したい方が、データサイエンスについて包括的に学ぶための書籍です。

なにを隠そう、この私もこの書籍で大学時代を過ごしました。(私の時は緑色のやつでした。ちょっと古いやつ)

今回紹介するこちらの最新バージョンは、最近はやりの生成AIの一つであるGAN(敵対的生成ネットワーク)とChatGPTの学習にも、もちいられた強化学習についての章が追加されたみたいです。

最新の動向を追うための知識から、基礎の基礎まで学べる素晴らしい書籍だと思います。ただし、ある程度Pythonの文法がわかってないと、読み進めていくのがつらいかもしれないです。

ただでさえ、データサイエンスという新しい知識を学んでいるところです。これにPythonの文法もわからないとなると、学びが遅々として進まず挫折の原因となるかと思います。

できれば簡単な文法はマスターしたうえで挑むのがいいかと思います。

目次

はじめに
第1章 「データから学習する能力」をコンピュータに与える
1.1 データを知識に変える「知能機械」
1.2 3種類の機械学習
1.3 基本用語と表記法
1.4 機械学習システムを構築するためのロードマップ
1.5 機械学習にPythonを使う
まとめ
第2章 分類問題―単純な機械学習アルゴリズムの訓練
2.1 人工ニューロン―機械学習の前史
2.2 パーセプトロンの学習アルゴリズムをPythonで実装する
2.3 Irisデータセットでのパーセプトロンモデルの訓練
2.4 ADALINEと学習の収束
2.5 勾配降下法によるコスト関数の最小化
2.6 大規模な機械学習と確率的勾配降下法
まとめ
第3章 分類問題―機械学習ライブラリscikit-learnの活用
3.1 分類アルゴリズムの選択
3.2 .scikit-learn活用へのファーストステップ:パーセプトロンの訓練
3.3 .ロジスティック回帰を使ってクラスの確率を予測するモデルの構築
3.4 サポートベクトルマシンによる最大マージン分類
3.5 カーネルSVMを使った非線形問題の求解
3.6 決定木学習
3.7 k最近傍法:怠惰学習アルゴリズム
まとめ
第4章 データ前処理―よりよいトレーニングセットの構築 
4.1 欠測データへの対処
4.2 カテゴリデータの処理
4.3 データセットを訓練データセットとテストデータセットに分割する
4.4 特徴量の尺度を揃える
4.5 有益な特徴量の選択
4.6 ランダムフォレストで特徴量の重要度を評価する
まとめ
第5章 次元削減でデータを圧縮する
5.1 主成分分析による教師なし次元削減
5.2 線形判別分析による教師ありデータ圧縮
5.3 カーネル主成分分析を使った非線形写像
まとめ
第6章 モデルの評価とハイパーパラメータのチューニングのベストプラクティス
6.1 パイプラインによるワークフローの効率化
6.2 k分割交差検証を使ったモデルの性能の評価
6.3 学習曲線と検証曲線によるアルゴリズムの診断
6.4 グリッドサーチによる機械学習モデルのチューニング
6.5 さまざまな性能評価指標
6.6 クラスの不均衡に対処する
まとめ
第7章 アンサンブル学習―異なるモデルの組み合わせ 
7.1 アンサンブルによる学習
7.2 多数決による分類器の結合
7.3 アンサンブル分類器の評価とチューニング
7.4 バギング:ブートストラップ標本を使った分類器アンサンブルの構築
7.5 アダブーストによる弱学習器の活用
まと
第8章 機械学習の適用1―感情分析
8.1 IMDbの映画レビューデータセットでのテキスト処理
8.2 BoWモデルの紹介
8.3 さらに大規模なデータの処理:オンラインアルゴリズムとアウトオブコア学習
8.4 潜在ディリクレ配分によるトピックモデルの構築
まとめ
第9章 機械学習の適用2―Webアプリケーション
9.1 学習済みのscikit-learn推定器をシリアライズする
9.2 データストレージとしてSQLiteデータベースを設定する
9.3 Flaskを使ってWebアプリケーションを開発する
9.4 映画レビュー分類器をWebアプリケーションとして実装する
9.5 WebアプリケーションをパブリックWebサーバーにデプロイする
まとめ
第10章 回帰分析―連続値をとる目的変数の予測
10.1 線形回帰
10.2 Housingデータセットの探索
10.3 最小二乗線形回帰モデルの実装
10.4 RANSACを使ったロバスト回帰モデルの学習
10.5 線形回帰モデルの性能評価
10.6 回帰に正則化手法を使う
10.7 多項式回帰:線形回帰モデルから曲線を見出す
まとめ
第11章 クラスタ分析―ラベルなしデータの分析
11.1 k-means法を使った類似度によるオブジェクトのグループ化
11.2 クラスタを階層木として構成する
11.3 DBSCANを使って高密度の領域を特定する
まとめ
第12章 多層人工ニューラルネットワークを一から実装
12.1 人工ニューラルネットワークによる複雑な関数のモデル化
12.2 手書きの数字を分類する
12.3 人工ニューラルネットワークの訓練
12.4 ニューラルネットワークでの収束
12.5 ニューラルネットワークの実装についての補足/まとめ
第13章 ニューラルネットワークの訓練をTensorFlowで並列化する
13.1 TensorFlowと訓練の性能
13.2 TensorFlow:最初のステップ
13.3 tf.dataを使った入力パイプラインの構築:TensorFlow Dataset API
13.4 TensorFlowでのニューラルネットワークモデルの構築
13.5 多層ニューラルネットワークでの活性化関数の選択
まとめ
第14章 TensorFlowのメカニズム
14.1 TensorFlowの主な特徴
14.2 TensorFlowの計算グラフ:TensorFlow 2.xへの移行
14.3 TensorFlowVariableオブジェクト:モデルパラメータの格納と更新
14.4 自動微分とGradientTapeによる勾配の計算
14.5 Keras APIを使って一般的なアーキテクチャの実装を単純化する
14.6 TensorFlow Estimator
まとめ
第15章 画像の分類―ディープ畳み込みニューラルネットワーク
15.1 畳み込みニューラルネットワークの構成要素
15.2 畳み込みニューラルネットワークを実装する
15.3 TensorFlowを使ってディープ畳み込みニューラルネットワークを実装する
15.4 CNNを使って顔画像から性別を予測する
まとめ
第16章 系列データのモデル化―リカレントニューラルネットワーク
16.1 系列データ
16.2 リカレントニューラルネットワーク:シーケンスモデルの構築
16.3 リカレントニューラルネットワークの実装:TensorFlowでのシーケンスモデルの構築
16.4 Transformerモデルを使って言語を理解する
まとめ
第17章 新しいデータの合成―敵対的生成ネットワーク
17.1 敵対的生成ネットワーク
17.2 敵対的生成ネットワークを一から実装する
17.3 畳み込み層とワッサースタイン距離を使って合成画像の品質を改善する
17.4 GANのその他の用途
まとめ
第18章 複雑な環境での意思決定―強化学習
18.1 はじめに:経験からの学習
18.2 強化学習の理論的基礎
18.3 強化学習のアルゴリズム
18.4 最初の強化学習アルゴリズムを実装する
本章と本書のまとめ
付録A Jupyter Notebookの基本的な使用方法
A.1 インストールと起動
A.2 ノートブックの作成と保存
A.3 セルの入力と実行
A.4 他のフォーマットへの変換
A.5 参考文献
付録B matplotlibによる可視化の基礎
B.1 pyplotを用いた可視化
B.2 描画対象のFigureの明示
B.3 複数の図のプロット
B.4 アニメーションの作成
B.5 日本語フォントの設定
付録C 行列の固有分解の基礎
C.1 行列によるベクトルの回転
C.2 固有ベクトル:行列を掛けても向きが変化しないベクトル
C.3 行列の階数(ランク)
C.4 参考文献

素敵なPythonライフを!

いかがだったでしょうか?意外とPythonのバージョンはどれがいいんだと悩むところだと思います。頑張る皆様の励みになることを祈っております!!


この記事が気に入ったらサポートをしてみませんか?