Python関連のことを調べてみた2022年07月16日

Python関連のことを調べてみた2022年07月16日
目次

元iOSエンジニアの自分が、我妻先生の「みんなのKaggle講座」のPython基礎で特に学びになったことをまとめてみた

Udemyの我妻先生の[「みんなのKaggle講座」](https://www.udemy.com/course/learning-kaggle/) を受講させていただきました。
大変わかりやすかったので、Kaggleに取り組んでみたいと思われているみなさんにおすすめです。この記事を見て、少しでも気になった方はぜひ購入してみてください。

自分は元iOSエンジニアということもあり、Pythonの書き方がなれていなかったので、
Pythonはこのように書くのかと、特に学びになったことをまとめさせていただきます。
誰かの学びになれば幸いです。

#### 学びになったこと
* 論理演算子の書き方
* リスト
* タプル
* for文
* クラスのself
* ファイルの保存と読み込み
* __init__メソッド
* __call__メソッド

## 論理演算子の書き方
Pythonでは、論理演算子を **「and」** **「or」** **「not」** と直接、文字で記載します。
&&とかでは記載しません。

“`
a = 3
b = 4
c = 5

d = a <

元記事を表示

パイ村 Part.2 データ分析のための環境構築(とりあえずPython動かしてみる)

# はじめに

Pythonをかじってみたい。データ分析の知識も身に付けたい。
ということからスタートしてみましたが、まずはPythonを使ってデータ分析を行う環境を作ります。

Pythonをインストールし、その他のいろいろなパッケージを使用する必要があるらしく、
個別にインストールすると面倒らしい。

なので、Anacondaというものをインストールし楽に環境構築します。
Anacondaはディストリビューションということらいしいですが、
つまりは、いろんなパッケージが纏まっているものだと想像しています。

**Pythonでデータ分析を始めるには必要なものが揃っているということらしいっす。**

ちなみに、私の環境はWindows10です。

# Anaconda の インストール

早速、Anacondaをインストールしていきましょう。

https://www.anaconda.com/download

上記URLにアクセスしダウンロードをクリックします。

download

元記事を表示

Pythonの Cartopy 球面プロットでいい感じに遠近感を出す方法

## はじめに
球座標データを可視化する際によく使われるのが、Orthographic投影(正射図法)です。これは球を離れた場所から見たようなプロットになるので、せっかくなので影をつけてもう少し格好良い図を作りたいと思うのが人の性でしょう(下図参照)。2次元プロットなのですが、まるで3次元かのような遠近感が出ています。
![fig1-min.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2738192/adff76af-3c1d-6eb2-4352-d206abcb9818.png)
Paraview などの洗練された3次元用描画ソフトを使えば、自動でいい感じに影をつけてくれるのですが、ここでは Pythonの Cartopy ライブラリを利用した手軽な方法(1例)を紹介します。

## 環境
テスト環境は以下の通り。既に Cartopy はインストール済みとします。インストール方法は[こちらの記事](https://qiita.com/wm-ytakano/items/f1597dfd4fc93961

元記事を表示

Microsoft SQL ServerにODBCで接続するためのLambda Layerを作成する方法

AWS Lambda から pyodbc を使って SQL Server に接続する案件があり、若干つまづいたので備忘録的なメモを残すことにしました。

# 環境

## Lambda
– ランタイムは Python 3.9
– アーキテクチャは x86_64

## pyodbc
– unixODBC-2.3.11 (投稿時の最新)

# TL;TR

– ほぼこれ(ありがたや。。。)
https://gist.github.com/diriver63/b72a954fa0da4851d89e5086aa13c6e8?permalink_comment_id=4199559#gistcomment-4199559

– lambdaの環境変数にiniファイルまでのパスを設定する

– soファイルのバージョンに注意

# 手順(ざっくりと)

適当なディレクトリを作成

“`
$ mkdir pyodbc-layer
$ cd pyodbc-layer
“`

Dockerfileを作成

“`
$ vi Dockerfile
“`

https://gist.github.

元記事を表示

DjangoでImportError: cannot import name ‘force_text’ from ‘django.utils.encoding’と出たときに試してみてほしいこと

# はじめに
Djangoのimportエラーで徹夜で対応し、疲れてしまいました。同じ境遇の人が減ることを願って備忘録として残しておきます。[元ソース](https://exerror.com/importerror-cannot-import-name-force_text-from-django-utils-encoding/#:~:text=.utils.encoding’-,To%20Solve%20ImportError%3A%20cannot%20import%20name%20’force_text’%20from%20′,Your%20error%20should%20be%20solved.)

# 原因
パッケージのバージョンによってはDjango4に対応していないみたいです。
以下の対応が難しいと感じたら以下の表を見てDjangoのバージョンとpythonのバージョンを決めてください。[ソース](https://github.com/graphql-python/graphene-django/pull/1275#issuecomment-1031498875)

元記事を表示

python 初心者向け 簡単にwebの画像をダウンロードするモジュール -urllib.request-

URL指定で画像をダウンロード

“`python
import urllib.request

url = “https.画像URL.png”
savename = “test.png”

urllib.request.urlretrieve(url,savename)
print(“保存しました”)

“`

元記事を表示

イテレータを一定個数ごとに分割する

## 目的

イテレータから値を取り出して順次処理する際に、一定個数ごとにバッチ的な処理を行うこと。

## 方法

表題の通り、元のイテレータを一定個数ごとのイテレータに分割する。
ただし、メモリ上に複数の値を保持しない方法で実装する。

タプルで例えるなら以下。
“`python
# 元のイテレータ
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

# n個ごとのイテレータに分割し、それをラップしてイテレートする (以下はn=4の場合)
((0, 1, 2, 3), (4, 5, 6, 7), (8, 9))

“`

## コード

“`iter.py
“””イテレータから特定個数ずつに分けたイテレータをイテレートするサンプル.”””

from typing import Iterator, TypeVar

T = TypeVar(“T”)

def iterate_iter(iter: Iterator[T], iter_size: int) -> Iterator[Iterator[T]]:
“””イテレータから特定個数ずつに分けたイテレータ

元記事を表示

poetryで誤ったバージョンの仮想環境が作られる問題について

poetryで仮想環境を作成したはずの場所でpyproject.tomlで設定したpythonのバージョンが使われない問題があります。

“`toml:pyproject.toml
[tool.poetry]
name = “test”
version = “0.1.0”
description = “”
authors = [“Your Name “]

[tool.poetry.dependencies]
python = “3.8.2”

[tool.poetry.dev-dependencies]

[build-system]
requires = [“poetry-core>=1.0.0”]
build-backend = “poetry.core.masonry.api”
“`

“`shell: shell
$ poetry -V
Poetry version 1.1.14

$ asdf local python 3.8.2 # pyenv local 3.8.2でも同じ
$ python -V
Python 3.8.2

$

元記事を表示

pythonのsleep関数について

pythonのsleep関数について、
“`python:doudemoii.py
import time
print(“mitsuya”)
time.sleep(1)
print(“cider”)
time.sleep(1)
print(“LOVE!!!”)
“`
とまあこんな感じで書きます。
だがサイダー氏思った
timeモジュールってsieep以外ほぼ使わないじゃん!
たから、こうすればもっと効率的じゃね?
“`python:doudemoii.py
from time import sleep
print(“mitsuya”)
sleep(1)
print(“cider”)
sleep(1)
print(“LOVE!!!”)
“`
「time.」って打つの地味にめんどくない?
どうせtimeモジュールなんてsleep以外たいして使わんやろ

元記事を表示

【Ubuntu】BlenderのPythonにパッケージを追加する方法

# 方法

## 1. Blenderをダウンロード・インストール
以下のサイトからビルド済みのバイナリが入っているtar.xzをダウンロードし、任意の場所に展開。
– 今回は/opt/blenderに展開
– 記事執筆時のBlenderのバージョンは3.2
– ターミナルで`/opt/blender/bledner`を実行するとBlenderが起動する

https://www.blender.org/download/

## 2. pipの導入
“`bash
cd /opt/blender/3.2/python/bin
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
./python3.10 get-pip.py
“`

## 3. パッケージ追加
“`bash
cd /opt/blender/3.2/python/bin
./python3.10 -m pip install h5py # h5pyパッケージを追加したい場合
“`

元記事を表示

Databricksでbamboolibを使ってみる

今週は結構立て込んでいたので記事投稿のペースが落ちてました。すみません。

https://qiita.com/taka_yayoi/items/7fb6fb9c45f4ea26a7cf

先日投稿した[bamboolib](https://bamboolib.8080labs.com/)の記事のウォークスルーをします。bamboolibを使うことで、ノーコードでデータフレームに対してさまざまな処理を行うことができます。また、その結果はPythonコードとして保存されるので、処理ロジックを転用することができます。

準備で必要なのはDatabricksランタイム11.0以降が稼働しているクラスターだけです。そのクラスターにノートブックを[アタッチ](https://qiita.com/taka_yayoi/items/c306161906d6d34e8bd5#%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%BF%E3%83%BC%E3%81%AB%E3%83%8E%E3%83%BC%E3%83%88%E3%83%96%E3%83%83%E3%82%AF%E3%82%

元記事を表示

バレーボールのプレーデータを分析し、チームに効果的なフィードバックをしたい。

# 目的

– 現状の限られたプレーデータを分析し、チームに効果的なフィードバックをしたい。
– pythonの`seaborn`ライブラリを使ってみたい。

# 背景

社会人サークルのため、実業団のように専門のアナリストがいるわけではない。そのため、限られた時間と少ないデータから、効果的なフィードバックをしたいと思った。

# 条件

– 過去23セット分のブレイク率とサイドアウト率を元に分析する。
(もっと他にも取得しているデータや優先的に見るべきデータはある気はするが、データの整形も含め手軽に利用できる状態だったためこれを採用。)
– 試合経過情報やセット終了時の成績は意識せず、シンプルにブレイク率、サイドアウト率のみで分析をする。

# ブレイク率とサイドアウト率とは

– ブレイク率
自チームがサーブの時のラリーで得点することを`ブレイク`と言います。
`ブレイク率`とはその割合のことです。
“`
自チームブレイク率 = 自チームサーブ時の自チーム得点 / 自チームサーブ数
“`
– サイドアウト率
相手チームがサーブの時のラリーで得点することを`サイドアウト`と言いま

元記事を表示

python 初心者向けオブジェクト指向のコード

コンストラクタの定義

“`python
class Vehicle:
def __init__(self,m,c): #コンストラクタの定義
self.model = m
self.color = c
self.speed = 0
car = Vehicle(“コンパクトカー”,”赤”) #carとゆうオブジェクトを作る
print(car.model)
print(car.color)
print(car.speed)

“`
![スクリーンショット 2022-07-15 17.44.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1614609/c1bc1d1e-62a9-23e4-5de7-45417592e532.png)

オブジェクトに機能を持たせる

“`python
class Vehicle:
def __init__(self,m,c):
self.mode

元記事を表示

pythonのselenium使ってweb操作自動化やってみた

こんにちは、初めての投稿です。

・自己紹介
私は、自動車メーカーで生技、製造の仕事をしています。
会社で受けたAIに関する教育で、AI技術に感動し、
Pythonの勉強を1年半前からしています。
業務では、AIを使用した外観検査の自動化や工場DXに関する仕事もしています。

・今回は最近勉強したことの紹介をしてみたいと思います。
youtubeで、「いまにゅ」さんがやっていたwebスクレイピング入門でweb操作の自動化を紹介していて面白そうだと思い、やってみました。
今回はSBI証券へのログインを自動化してみました。

参考動画は下記です。

①まずはwebドライバーをインストールします。
 今回はMicrosoftEdgeのドライバーを下記のサイトからインストール。
 https://developer.microsoft.com/ja-jp/microsoft-edge/tools/webdriver/
 
②seleniumとtimeをpipでインストールし、インポート
“`

元記事を表示

NumPy で欠損値等を除く時は np.ma.masked_where が便利

# 要素削除の問題点

NumPyで欠損値や外れ値を除く時どうしてますか?多くの人が単純にその要素を配列から削除していると思います。例えば`nan`を除くなら以下のような感じ。

“`python:これでもいいが…
a = np.array([3, 4, np.nan, 8, np.nan])
a = a[~np.isnan(a)]
print(a) # [3. 4. 8.]
print(a.mean()) # 5.0
“`

この方法でもいいのですが、よくある問題として要素を削除するとそれが元のデータの何番目だったのか分からなくなるということがあります。例えば値を除いて分析した後にこの最大値を取るものを個別に見てみたいとか思っても、消している要素があるのでそれが元のデータ上では何番目になるのかわかりません。

# Masked Array
そんな時に便利なのがmasked arrayです。masked arrayはNumPyに元から入っている機能です。masked arrayは普通のndarrayとマスクを一つにした型で、個々の要素についてマスクするかしないかを決められます。

元記事を表示

GeoPandasのインストールとSpyderの設定

“Pythonでシェープファイルを扱えるGeopandasをインストールできたハズなのに、モジュールが見つからないと言われる…どうすれば使えるの?!”

…というPython初心者がエディタのSpyderで動かせるところまでたどり着いたので、記事を書きました。なお本記事は2022/07/15時点の情報ですのでご留意ください。

同様の記事がたくさんありますので、もしほかの記事でダメだった方や、インストールできたけど起動できないよという方の参考になれば幸いです。

## GeoPandasのインストールでぶつかったトラブル
1. コマンドプロンプトの「pip install」では関連ライブラリが見つからないのでインストールできないと言われる
1. miniconda3経由でも既存の環境で競合するらしくインストールできない
1. インストール先とSpyderの仮想環境がリンクしていないらしく「そのようなモジュールが見つかりません」と言われる

## インストールに必要だったこと
+ conda-forge channnelにインストール方法を統一する!
+ 仮想環境を新規で作る!
+ 仮想

元記事を表示

Classが理解できない、難しい人のために

## この記事を書いた理由
私はエンジニアの学習を始め、一通り文法を勉強しましたが
Classの意味が本当にわからなかったです。
わからない原因をずーっと考えていましたが、自分なりの答えにやっと辿り着きました。
それは『Classの概念がなぜ必要かわからない』というところでした。
## 覚えておいた方が良い前提条件
Classの説明に関してはあらゆるところで見ると思います。
よく見るのが
Classとはモノの設計書です。
Classとは概念です。
Classはインスタンスを生成してから使います、、
そしてこんな設計図をみます、、
![スクリーンショット 2022-07-15 11.25.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/714631/a74d3795-ce77-41f6-5134-865cafda26bb.png)

こんなこと書かれてあーなるほどね。そう理解する人はごく少数だと思います

そこで、知っておくべきこととして大事なことですが
*アプリケーションは何百ものソースコードの集合

元記事を表示

python3.6 以降で変数を文字列に埋め込んで出力する print(f “{variable}”)

# 例

“`py
name = “Alice”

print(f”My Name is {name}”) # My Name is Alice
“`

# チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

# メンター受付

https://menta.work/user/5694

元記事を表示

statsmodelsのadd_constantで切片項が付かない!??

# 切片項が付かない

 そうです。切片項が付かないんです。何度コードを回してもエラーもないし、切片項もないんです。

# 背景

 kaggleのコンペのために回帰分析で予測モデルを作っていたところ、statsmodels.OLS(train_y, train_X).fit()のところで、よくエラーが生じていました。
 適用するデータには欠損値がないし、ダミー化もしている。処理も間違っていなさそうなのに、なんでじゃい!!とずっと困惑しておりました。

 そこで、あることに気づいたのです。そうです。直前のtrain_X = statsmodels.add_constant(train_x)のところでtrain_Xに切片項’const’が加えられていないのです。

 何回回しても付かない。なのにモデル作成時の方には’const’が付いている。モデル作成時と処理はほとんど変わらない。でもモデル当てはめ時のデータには’const’が付かない…。

 ネットという大海を浮遊、もしくは森林をさまよっていた際に、とあるオアシス(記事)にたどり着きました。

 そうです、「公式ドキュメント」です

元記事を表示

Kaggleで勝つデータ分析技術_3章の欠損値についてまとめてみた

[Kaggleで勝つデータ分析技術](https://www.amazon.co.jp/Kaggle%E3%81%A7%E5%8B%9D%E3%81%A4%E3%83%87%E3%83%BC%E3%82%BF%E5%88%86%E6%9E%90%E3%81%AE%E6%8A%80%E8%A1%93-%E9%96%80%E8%84%87-%E5%A4%A7%E8%BC%94/dp/4297108437)の第3章 『特徴量の作成』の欠損値についてまとめてみました。

分析コンペでモデルの精度を上げるためにも、特徴量の作成は最も重要な要素の一つで、その中でも欠損値の取り扱いは大切です。
ここでは、Kaggleで勝つデータ分析技術の欠損値の言及がされているところをまとめてみました。

## そもそも欠損値とは
欠損値とは、値が入力されていない空の値のことを示します。
下記のテーブルの中で、名前が入力されていない行があります。
この入力されていない値が欠損値になります。

| 名前 | 年齢 |
|:-:|:-:|
| 安井 | 28 |
| | 25 |
| 石崎 | 21

元記事を表示

OTHERカテゴリの最新記事