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

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

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

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

Q&A

解決済

2回答

668閲覧

matrixを実行結果から消したい(表示されているmatrixを表示させたくない)

tamanegi.gogo

総合スコア16

Python

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

0グッド

0クリップ

投稿2019/01/18 07:34

前提・実現したいこと

実行結果で出たmatrixを表示から消したい
matrixをristへ変換したい

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

エラーは、出ていません

該当のソースコード

import numpy as np def MODIFY(diagW,Gvect,nplst,rz,rw,sl,\ su,pl,gu,gl,ne,npg,nqg,nqgst,\ npgst,npl,ni,nj,dpl4,ndtl,d,e,\ rp,rq,pp,qq,per,ntot,nd_type): # MODIFY 修正量を算出するプログラム # 詳細説明をここに記述 ### 修正量(ステップ長をかける前)を算出 ### #modify = inv(diagW)*Gvect(:,1); #print(Gvect) #print(diagW) GvectB = [[0 for i in range(1)] for j in range(npg+nqg+4*ndtl)] diagWB = [[0 for i in range(npg+nqg+4*ndtl)] for j in range(npg+nqg+4*ndtl)] modify = [[0 for i in range(1+1)] for j in range(npg+nqg+4*ndtl+1)] for i in range(0,npg+nqg+4*ndtl): tmp= Gvect[i+1][1] GvectB[i][0]=tmp for i in range(0,npg+nqg+4*ndtl): for j in range(0,npg+nqg+4*ndtl): diagWB[i][j] = diagW[i+1][j+1] ### modify = inv(diagW)*Gvect(:,1); をきれいに... ### A=np.matrix(GvectB) #print(A) B=np.matrix(diagWB) #print(B) B=B.astype(np.float64) C=np.linalg.inv(B) #print(C) D=np.dot(C,A) for i in range(0,npg+nqg+4*ndtl): modify[i+1][1] = D[i][0] print(modify) ##############  以下が実行結果です  ################# [[0, 0], [0, matrix([[-1.84293559]])], [0, matrix([[0.42187868]])], [0, matrix([[0.5421875]])], [0, matrix([[0.634375]])], [0, matrix([[-3.37631349e-33]])], [0, matrix([[-0.36228691]])], [0, matrix([[-2.16875001]])], [0, matrix([[68.30056121]])], [0, matrix([[0.86012398]])], [0, matrix([[-0.0559386]])], [0, matrix([[-2.53750001]])], [0, matrix([[71.84939705]])], [0, matrix([[0.25572165]])], [0, matrix([[-0.28585456]])], [0, matrix([[3.10490349]])], [0, matrix([[90.00351796]])], [0, matrix([[0.18757902]])], [0, matrix([[-0.31256414]])], [0, matrix([[1.24054555]])], [0, matrix([[74.87879889]])], [0, matrix([[0.36842755]])], [0, matrix([[-0.29225707]])], [0, matrix([[1.15342389]])], [0, matrix([[79.18513116]])], [0, matrix([[0.16791101]])], [0, matrix([[-0.31389678]])], [0, matrix([[0.29992592]])], [0, matrix([[75.1848679]])]]

試したこと

matrixをlistに戻す(表示させなくする)ように
しましたがどうしたらよいかわかりません。

補足情報(FW/ツールのバージョンなど)

Windows10
Python 3.7.0
ここにより詳細な情報を記載してください。
エラーは出ていません
怪しいのがPython 3.7.0で36bitで作っていますが
37行目でB=B.astype(np.float64)
を使っています
この64と書いている32bitが関係しているかどうかが気にっています

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

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

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

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

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

can110

2019/01/18 07:54

最初の3要素程度でよいので、欲しいリスト例を提示ください。 [[0,0],[0,-1.8~],...] または [[0,0],[0,[[-1.8~]]],...]?
guest

回答2

0

コードの中身は理解できていませんが、以下のような結果に変換したいということでしょうか?

Python

1import numpy as np 2 3# 略 4 5modify = [[0,np.mat([[1]])],[0,np.mat([[2]])]] # ダミーデータ 6print(modify) # [[0, matrix([[1]])], [0, matrix([[2]])]] 7 8for idx,row in enumerate(modify): 9 row[1] = row[1].tolist() # (1) 10 #row[1] = row[1][0][0] # (2) 11 12# (1) [[0, [[1]]], [0, [[2]]]] 13# (2) [[0, 1], [0, 2]] 14print(modify)

投稿2019/01/18 08:07

編集2019/01/18 08:18
can110

総合スコア38268

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

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

tamanegi.gogo

2019/01/18 08:53

はい そんな感じで matrixとでているのを 見えないように下です 殺伐としてすみません
guest

0

ベストアンサー

np.matrix() となっている箇所を np.array() としたらどうでしょうか?

A=np.matrix(GvectB) B=np.matrix(diagWB)

A=np.array(GvectB) B=np.array(diagWB)

ちなみに numpy.matrix クラスの使用は非推奨となっています。(numpy.array() を使いましょう。)

投稿2019/01/18 07:39

編集2019/01/18 07:40
tiitoi

総合スコア21956

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

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

tamanegi.gogo

2019/01/18 08:53

ありがとうございます 試してみます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問