先ほど作成した二次元配列を保存しようとするがさっぱりうまくいかない。
原因がさっぱり
最初配列をそのまま保存しようとしますがデータが全部0が保存されているよう。
いろいろ試行錯誤してcsv形式にしました。
試行錯誤の途中で配列も一次元に変換。
numpyのバージョンも1.11を削除して1.13をインストール
読み取った後も小数点がついてきたのでキャスト
なんとか動いている状態です。
データ保存
データ読み取り
2時間ぐらいはまっていたかも
<参考文献>
numpy > ファイル読み書き > np.save() / np.load() / np.savetxt() / np.loadtxt() > バイナリ読み書き / csv読み書き
原因がさっぱり
最初配列をそのまま保存しようとしますがデータが全部0が保存されているよう。
いろいろ試行錯誤してcsv形式にしました。
試行錯誤の途中で配列も一次元に変換。
numpyのバージョンも1.11を削除して1.13をインストール
読み取った後も小数点がついてきたのでキャスト
なんとか動いている状態です。
データ保存
#!/usr/bin/python # -*- coding: utf-8 -*- import pygame import random import numpy as np mapdata = np.array([0 for y in range(150)]) screen = pygame.display.set_mode((600, 400)) def gamemain(): np.savetxt('data1.csv', mapdata, delimiter=",") print np.version.full_version while (1): screen.fill((0,0,0)) write() pygame.display.update() for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() quit() def randset(): for x in range(15): for y in range(10): mapdata[x+y*15]=random.randrange(0, 9) def write(): font = pygame.font.Font(None, 32) for x in range(15): for y in range(10): text = font.render(str(mapdata[x+y*15]), True, randcolor()) screen.blit(text, [x*20, y*20]) def randcolor(): return (random.randrange(0, 3)*127,random.randrange(0, 3)*127,random.randrange(0, 3)*127) pygame.init() randset() gamemain() pygame.quit() quit()
データ読み取り
#!/usr/bin/python # -*- coding: utf-8 -*- import pygame import random import numpy as np import time mapdata = np.loadtxt("data1.csv", delimiter=",") screen = pygame.display.set_mode((600, 400)) def gamemain(): while (1): screen.fill((0,0,0)) write() pygame.display.update() time.sleep(0.2) for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() quit() def write(): font = pygame.font.Font(None, 32) for x in range(15): for y in range(10): text = font.render(str(int(mapdata[x+y*15])), True, randcolor()) screen.blit(text, [x*20, y*20]) def randcolor(): return (random.randrange(0, 3)*127,random.randrange(0, 3)*127,random.randrange(0, 3)*127) pygame.init() gamemain() pygame.quit() quit()
2時間ぐらいはまっていたかも
<参考文献>
numpy > ファイル読み書き > np.save() / np.load() / np.savetxt() / np.loadtxt() > バイナリ読み書き / csv読み書き