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

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

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

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

Python 3.x

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

Q&A

解決済

2回答

2373閲覧

toarrayメソッドで出来るmatrixの要素の桁数を操作したい

rink

総合スコア80

NumPy

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

Python 3.x

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

0グッド

0クリップ

投稿2022/02/27 17:09

toarray()で出力される要素を、省略せずに保管したいです。

python

1from sklearn.feature_extraction.text import TfidfVectorizer 2corpus = ['I go to the park .', 3 'I will go shopping .'] 4vectorizer = TfidfVectorizer() 5vectorizer.fit(corpus) 6X = vectorizer.transform(corpus) 7print('type ->',type(X)) 8print('shape ->',X.shape) 9print(X) 10print(X.toarray()) 11''' 12出力: 13type -> <class 'scipy.sparse.csr.csr_matrix'> 14shape -> (2, 6) 15 (0, 4) 0.0534046329052269 16 (0, 3) 0.0534046329052269 17 (0, 1) 0.0534046329052269 18 (0, 0) 0.037997836159100784 19 (1, 5) 0.06316672017376245 20 (1, 2) 0.06316672017376245 21 (1, 0) 0.04494364165239821 22[[0.037997836 0.053404633 0. 0.053404633 0.053404633 0. ] 23 [0.044943642 0. 0.06316672 0. 0. 0.06316672 ]]

一番下のマトリックスを期待しているのですが、実際には

python

1[[0. 0. 0 0. 0. 0.] 2 [0. 0. 0. 0. 0. 0.]]

となってしまいます。
toarray()はnumpyではないので、np.set_printoptions()を試してみたのですが、関係ありませんでした。どうすれば良いでしょうか。。
どなたか、ご教示いただけるとありがたいです。よろしくお願い致します。

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

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

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

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

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

jbpb0

2022/02/27 23:40

> np.set_printoptions()を試してみたのですが、関係ありませんでした。 https://lib-arts.hatenablog.com/entry/nlp_tutorial2 の「3. tf-idfの実装」の「・tf-idfの計算」に、  表示を綺麗にするために、np.set_printoptions(precision=3)を用いて桁数を落としました と書かれてます 「print(X.toarray())」のすぐ上に「np.set_printoptions(precision=3)」を追加して実行したら、表示される桁数が変わりませんでしょうか?
jbpb0

2022/02/27 23:48

> toarray()はnumpyではない print(type(X.toarray())) を実行したら、何て表示されますでしょうか?
rink

2022/02/28 08:07

質問ありがとうございます<(_ _)> 調べてみたら、numpy.ndarrayとなっていました。。 importの部分が色薄くなっていたので、埋め込みのメソッドなのかと思っていました。 ですが、仰っていただいたようにやってみても結果は変わりませんでした。。
jbpb0

2022/03/04 09:53

Google Colabで、質問のコードを全くそのまま実行したら、下記のように表示されました type -> <class 'scipy.sparse.csr.csr_matrix'> shape -> (2, 6) (0, 4) 0.534046329052269 (0, 3) 0.534046329052269 (0, 1) 0.534046329052269 (0, 0) 0.37997836159100784 (1, 5) 0.6316672017376245 (1, 2) 0.6316672017376245 (1, 0) 0.4494364165239821 [[0.37997836 0.53404633 0. 0.53404633 0.53404633 0. ] [0.44943642 0. 0.6316672 0. 0. 0.6316672 ]] 表示される桁数の問題以前に、質問に記載の「出力:」の数値と1桁違います 質問者さんも、Google Colabでも実行して、確認してみてください なお、Google Colabに今日時点で入ってるバージョンは、「!pip list」で確認したら、 scikit-learn 1.0.2 でした 質問者さんがお使いのバージョンが、もし上記よりもかなり古いものなら、バージョンアップしてみたらいいかもしれません
guest

回答2

0

ベストアンサー

Google Colabで、質問のコードを全くそのまま実行したら、下記のように表示されました

python

1type -> <class 'scipy.sparse.csr.csr_matrix'> 2shape -> (2, 6) 3 (0, 4) 0.534046329052269 4 (0, 3) 0.534046329052269 5 (0, 1) 0.534046329052269 6 (0, 0) 0.37997836159100784 7 (1, 5) 0.6316672017376245 8 (1, 2) 0.6316672017376245 9 (1, 0) 0.4494364165239821 10[[0.37997836 0.53404633 0. 0.53404633 0.53404633 0. ] 11 [0.44943642 0. 0.6316672 0. 0. 0.6316672 ]]

表示される桁数の問題以前に、質問に記載の「出力:」の数値と1桁違います
質問者さんも、Google Colabでも実行して、確認してみてください

なお、Google Colabに今日時点で入ってるバージョンは、「!pip list」で確認したら、
scikit-learn 1.0.2
でした
質問者さんがお使いのバージョンが、もし上記よりもかなり古いものなら、バージョンアップしてみたらいいかもしれません

投稿2022/03/20 12:51

jbpb0

総合スコア7658

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

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

0

以下です。

Python

1>>> print(X.todense()) 2[[0.37997836 0.53404633 0. 0.53404633 0.53404633 0. ] 3 [0.44943642 0. 0.6316672 0. 0. 0.6316672 ]]

投稿2022/02/27 22:05

ppaul

総合スコア24672

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

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

rink

2022/02/28 08:26

ご回答ありがとうございます!! やってみたのですが、変わりませんでした。。。 表示の関係でしょうか…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問