質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2073閲覧

pklファイルの内容はどうやって編集できますか?

kentera

総合スコア6

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/06/22 06:53

前提・実現したいこと

pythonで機械学習の勉強をしています。
例題のコードでやってみて、次に自分の用意したデータでの実装を試みています。

発生している問題・エラーメッセージ

例題のPKLファイルを編集して、自分のデータに置き換えようとしたのですがうまくできず、自分でイチからPKLファイルを作ろうとしたのですが例題のファイルのようにできません。

次の2つが質問になります。
1、"array()"を2つ含むオブジェクトはどのように作れますか?
2、例題のinput_dataの全内容を確認して編集することはできますか?

該当のソースコード

以下は例題のファイルです。このようにinput_dataに2つarray()がはいるっているようにしたいです。

python

1import pickle 2with open("test.pkl", 'rb') as fin: 3 input_data = pickle.load(fin, encoding='latin1') 4 5input_data

output
[array([[ 0.0696733 , -1.41421356, 0.10599979, ..., -0.11008303,
0.18107149, -1.37784909],
[ 0.0696733 , 0. , 0.10599979, ..., -0.11008303,
0.18107149, -1.37784909],
[-1.18444612, 0. , 0.10599979, ..., -0.11008303,
1.81071492, -0.01887465],
...,
[ 0.0696733 , 0. , 2.01399597, ..., -0.11008303,
-1.44857194, -0.01887465],
[ 1.32379273, 0. , 0.10599979, ..., 1.47511265,
1.81071492, 1.3400998 ],
[ 0.0696733 , 0. , 0.10599979, ..., -0.11008303,
0.18107149, -0.01887465]]),
array([1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1,
1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1,
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1,
1, 0, 0, 0, 0, 0], dtype=int16)]

試したこと

以下のようにcsvファイルから入力データの作成に挑戦しました。
最終的には上記のinput_dataようにしたかったのですが、できませんでした。

python

1df = pd.read_csv("mydata.csv", header=0) 2a=df.values 3x=a[:,1] 4y=a[:,2:] 5b=np.array(x) 6c=np.array(y) 7b_int16 = b.astype(np.int16) 8c_int16 = c.astype(np.int16) 9scipy.stats.zscore(b_int16) 10c_int16

output
array([[ 1.55363867, 0.6751906 , -1.48106326, ..., 0.72324057,
0.77251161, 0.59679509],
[ 1.55363867, -1.48106326, 0.6751906 , ..., 0.72324057,
0.77251161, 0.59679509],
[ 1.55363867, 0.6751906 , -1.48106326, ..., -1.3826658 ,
0.77251161, 0.59679509],
...,
[-0.6436503 , 0.6751906 , 0.6751906 , ..., 0.72324057,
0.77251161, 0.59679509],
[-0.6436503 , 0.6751906 , -1.48106326, ..., 0.72324057,
0.77251161, -1.67561699],
[-0.6436503 , 0.6751906 , 0.6751906 , ..., 0.72324057,
0.77251161, -1.67561699]])

array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype=int16)

python

1myfile1=open('b_int16','wb') 2myfile2=open('c_int16','wb') 3pickle.dump(myfile1, myfile2)

output

TypeError Traceback (most recent call last)
<ipython-input-30-47c584f8672c> in <module>
1 myfile1=open('b_int16','wb')
2 myfile2=open('c_int16','wb')
----> 3 pickle.dump(myfile1, myfile2)

TypeError: cannot serialize '_io.BufferedWriter' object

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

サンプルと同じ構造であればリストでまとめてから保存して下さい。

以下、サンプルです。

python

1import pickle 2import numpy as np 3 4x = np.array([1.23, 4.56, 7.89]) 5y = np.array([1, 1, 1, 0, 0, 0], dtype=np.int16) 6 7z = [x, y] 8pickle.dump(z, open("two_in_one.pkl", "wb"))

投稿2020/06/22 16:26

yymmt

総合スコア1615

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kentera

2020/06/24 11:50

できました!ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問