【python3】可変長の配列を半分にする
ndarrayはnumpy.split()でいけるけど普通のリストは組み込み関数がないから自分で書くしかない。
li = [i for i in range(8)] harf_li = list((li[:int(len(li)/2)],li[int(len(li)/2):])) print(harf_li) #[[0, 1, 2, 3], [4, 5, 6, 7]]
ちなこれだと奇数の時は後者が膨れる。
後者のスライスに+1すると奇数でも同じ長さになる。ただ真ん中の数は消える
【python】2進数→10進数と10進数→2進数
1日10分でできるアタマの体操😃
2進数→10進数
特に言うことなし
強いて挙げるとすれば2進をリスト化した時にひっくり返さんといけないことぐらいか
def calc_base2(base2_list): base2_list = reversed(base2_list) #ひっくり返さんとイカン base10 = 0 index = 1 for num in base2_list: if num == 1: base10 += index index *= 2 return base10 # if __name__ == '__main__': # base2 = input() # try: # base2_list = list(map(int, list(base2))) # except: # print('please input only integer.') # exit(0) # print(calc_base2(base2_list))
10進数→2進数
こっちはちとわかりづらい
ビット(0か1)を算出してリストに突っ込む
↓
割る2したあとintでくるんで余り切り捨て
↓
1以下になったら終了
def calc_base10(base10): base2_list = [] while(base10 >= 1): bit = base10 % 2 base2_list.append(bit) base10 /= 2 base10 = int(base10) base2 = ''.join(map(str,reversed(base2_list))) return base2 # if __name__ == '__main__': # base10 = int(input()) # print(calc_base10(base10))
2018/3月の思い出
上旬
まだ寒い
syamuのチャットボットを作り始める
研究室で勉強するか仕事するか休んでゴロゴロするかの日々
一生こうして暮らしたいなぁ…
中旬
寒くなくなって来た
syamuのチャットボットにword2vecで世界観から言葉を紡ぐ機能を搭載した
インフルエンザで卒業式に行けず
macbookぷろを購入したので金がなくなる
下旬
やっているプログラミング塾での生徒の発表会があった
俺もあれ位の頃から情報工学を学んでいたらなぁ…😷
kerasの勉強をして簡単なCNNくらいなら組んでぶん回せるようになった
syamuのチャットボットに極性辞書を用いた感情機能を搭載した
2人もforkしてる酔狂な方がいるのでissueを書いたりcommit時のコメントをしっかりするようにし始めた
自然言語処理(と呼ぶのはおこがましいかもしれないが)楽しい
【機械学習】長いループのお供に 進行状況を表示するtqdmのインストール
こんにちは😊
機械学習には何万回といったループによる処理が必要不可欠です。普通のcpuのマシンで学習させると平気で何十時間もかかったりしちゃいます。
どこまで進んだかわからなくなりif文で1000回に1回くらい表示するプログラム入れたりしちゃいますよね。俺もよくやります。 勿論それでも良いのですがさらにわかりやすくするのにオススメのものがtqdmというパッケージです。
このパッケージは進行状況をゲージを用いて表示してくれます。情報量が多くて安心しますね😊
今回の記事はそんなtqdmをanacondaでインストールする方法を解説しているところが無かったのでメモ代わりに書いています。
tqdmはcondaでは提供されていないためAnaconda Cloudを用いてインストールする必要があります。 Anaconda Cloudとは個人(または団体)が好きなパッケージを詰め合わせて作ったリポジトリです。anacondaの公式側がサービスを提供しています。
$ conda install -c [リポジトリ名] [パッケージ名]
でインストールできます😘 tqdmの入ったリポジトリはたくさんありますが今回は超有名なconda-forgeにします。
$ conda install -c conda-forge tqdm
これで終わりです!楽ちん! forgeって鍛治場って意味なんですね〜 知らなかった!
終わったら以下のコードをコピペ&実行してtqdmの威力を確認してください。
from time import sleep from tqdm import tqdm if __name__ == '__main__': for i in tqdm(range(5)): sleep(1)
使い方はクソ簡単でイテレータ(上のコードではrange(5))をtqdm()でくくるだけです。 trange()でもいけるらしい。
良い学習ライフを😊
【bms】LR2 譜面別上位プレーヤー100名の情報を取得しcsvファイルとして保存
生まれて初めてスクレイピングした時に作ったものです
pythonで実行しましょう
import csv import urllib.request from bs4 import BeautifulSoup try: soup = BeautifulSoup(urllib.request.urlopen('http://www.dream-pro.info/~lavalse/LR2IR/search.cgi?mode=ranking&bmsid=545'), "lxml") except: print("エラー urlが開けません") else: print("urlの取得に成功しました") title = soup.find("h1").string table = soup.find_all("table")[3] rows = table.find_all("tr") try: csvfile = open("items/"+ title +".csv", "wt", newline='', encoding='utf-8') writer = csv.writer(csvfile) for row in rows: csvrow = [] for cell in row.find_all(['td','th']): csvrow.append(cell.get_text()) writer.writerow(csvrow) except (FileNotFoundError, TypeError): print("エラー ファイルが不明です") else: print("ランキングリストの作成に成功しました") finally: csvfile.close()
動きとしては非常に単純です