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

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

新規登録して質問してみよう
ただいま回答率
85.31%
Python 3.x

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

Q&A

解決済

1回答

5296閲覧

numpy配列のprint文の一行の文字数の制限を拡大したい。

sigefuji

総合スコア127

Python 3.x

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

1グッド

0クリップ

投稿2022/10/14 03:35

編集2022/10/14 03:38

前提

numpy配列をprintする場合、一行の文字数が一定数を超えると改行されます。
この文字数の制限を大きくすることはできるでしょうか。
ネットで関係する記述を見たような気もしますが、探せません(間違いかも?)。

ちなみにリスト配列ですと、この制限は無いようです。ただし、エディタにコピーでの確認ですが、spyderのコンソールではもう少し多い文字数で改行表示されます(この制限はspyderのせいかも知れません)

なお、文字列に変換してprintする方法は考えません。

実現したいこと

numpy配列をprintする場合、一行の文字数の制限を大きくすること

確認用ソースコード

python

1import numpy as np 2 3text1 = np.zeros(30).astype('int') 4text2 = np.array(range(30)) 5 6np.set_printoptions(threshold=20)  #この文にあまり意味がありません 7 8print("case1") 9print(text1) 10print(text2) 11 12print("case2") 13print(text1,end='') 14print() 15print(text2,end='') 16print() 17 18np.set_printoptions(threshold=30)  #この文にあまり意味がありません 19print("case3") 20print(text1) 21print(text2) 22 23print("case4") 24print(text1,end='') 25print() 26print(text2,end='') 27print() 28 29lary1 = [0 for x in range(30)] 30lary2 = [x for x in range(30)] 31lary3 = [10000*x for x in range(30)] 32 33print("list") 34print(lary1) 35print(lary2) 36print(lary3)

試したこと

コンソール出力
runfile('C:/book/KERAS/untitled1.py', wdir='C:/book/KERAS')
case1
[0 0 0 ... 0 0 0]
[ 0 1 2 ... 27 28 29]
case2
[0 0 0 ... 0 0 0]
[ 0 1 2 ... 27 28 29]
case3
[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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
24 25 26 27 28 29]   #この部分の改行制限を広げたい
case4
[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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
24 25 26 27 28 29] #この部分の改行制限を広げたい
list
[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, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
[0, 10000, 20000, 30000, 40000, 50000, 60000, 70000, 80000, 90000, 100000, 110000, 120000, 130000, 140000,
150000, 160000, 170000, 180000, 190000, 200000, 210000, 220000, 230000, 240000, 250000, 260000, 270000, 280000,
290000]
注:最後の場合、投稿用にコンソールと同じ位置で改行を挿入しています。

melianを押しています

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

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

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

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

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

sigefuji

2022/10/14 03:59

早速のご返事ありがとうございます。 どんぴしゃりでした。 このページを見たのかもしれませんが、このような情報への検索能力が必要ですね。 お手数ですが回答への転記をお願いします。
melian

2022/10/14 04:05

ありがとうございます、転記しました。
guest

回答1

0

ベストアンサー

※ コメントから転記

linewidth が効くかもしれません。

python

1np.set_printoptions(linewidth=10000)

numpy.set_printoptions — NumPy v1.23 Manual

linewidth: int, optional

The number of characters per line for the purpose of inserting line breaks (default 75).

投稿2022/10/14 04:05

melian

総合スコア21118

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

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

sigefuji

2022/10/14 04:40

どんぴしゃりでした
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問