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

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

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

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

解決済

1回答

678閲覧

numpyのsp.saveでlistを保存する方法について

yu__

総合スコア108

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

1グッド

0クリップ

投稿2019/06/05 05:39

numpyのsp.saveでlistを保存する方法について

python

1a = [[[['a', 1], ['a', 2, 'aa']]], [[['b', 3], ['b', 4, 'bb']]], [[['c', 5], ['c', 6, 'cc']]]] 2a

と実行したとき以下のような出力があります。

[[[['a', 1], ['a', 2, 'aa']]], [[['b', 3], ['b', 4, 'bb']]], [[['c', 5], ['c', 6, 'cc']]]]

これをnp.saveを使って保存したときそれをloadすると以下のような出力に変化してしまいます。

python

1np.save('a_rensyuu',a) 2a1 = np.load('a_rensyuu.npy') 3a1

出力

array([[[list(['a', 1]), list(['a', 2, 'aa'])]], [[list(['b', 3]), list(['b', 4, 'bb'])]], [[list(['c', 5]), list(['c', 6, 'cc'])]]], dtype=object)

保存した私としては同じ結果が得られるとうれしいのですが,そのような結果が得られませんでした。

試しに以下のようなコードを書いてみたところ

python

1a2 = list(a1) 2a2

出力

[array([[list(['a', 1]), list(['a', 2, 'aa'])]], dtype=object), array([[list(['b', 3]), list(['b', 4, 'bb'])]], dtype=object), array([[list(['c', 5]), list(['c', 6, 'cc'])]], dtype=object)]

となり、希望の結果が得られませんでした。

どうすればa1とaがまったく同じ型の出力にすることが出来るのでしょうか?
分かる方がいれば教えていただけると恐縮です。

mitarai👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

標準ライブラリの pickle をお使いください。
以下のように保存前と保存後で同じ型を保てます。

python

1import pickle 2 3arr = [ 4 [[["a", 1], ["a", 2, "aa"]]], 5 [[["b", 3], ["b", 4, "bb"]]], 6 [[["c", 5], ["c", 6, "cc"]]], 7] 8print(arr) # 保存前 9 10with open("test.pickle", mode="wb") as f: 11 pickle.dump(arr, f) # 保存する。 12 13with open("test.pickle", mode="rb") as f: 14 arr = pickle.load(f) # 読み込む。 15print(arr) # 保存後
[[[['a', 1], ['a', 2, 'aa']]], [[['b', 3], ['b', 4, 'bb']]], [[['c', 5], ['c', 6, 'cc']]]] [[[['a', 1], ['a', 2, 'aa']]], [[['b', 3], ['b', 4, 'bb']]], [[['c', 5], ['c', 6, 'cc']]]]

投稿2019/06/05 06:03

tiitoi

総合スコア21956

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問