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

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

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

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

Python

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

Q&A

解決済

1回答

788閲覧

numpyで値を変更する

jotaku

総合スコア40

NumPy

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

Python

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

0グッド

0クリップ

投稿2019/05/07 06:48

numpy_row=np.ones([10,12])
これにより作成された多次元配列の1を一部2に変更したいです
[[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.]]
これを
[[2. 2. 2. ... 2. 2. 2.]
[1. 2. 2. ... 2. 2. 2.]
[1. 1. 2. ... 2. 2. 2.]
...
[1. 1. 1. ... 1. 1. 1.]
[1. 1. 1. ... 1. 1. 1.]
[1. 1. 1. ... 1. 1. 1.]]
のようにです
よろしくお願いいたします

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

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

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

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

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

tetsunosuke

2019/05/07 06:54

2にしても良い値の行列位置については条件があるのでしょうか。 numpy_rows[0][0] = 2 のように明示的に位置をしていすればもちろん更新は可能なのですが・・・
jotaku

2019/05/07 07:07

0行目は全て1行目は右から最後の1つ以外2行目は右から最後の二つ以外という感じです
jotaku

2019/05/07 07:08

実際はこれを行数と列数は一致しておりません
can110

2019/05/07 07:17 編集

「0行目は全て~」がよく分からない(右?から何がどうなるべき?)ので理想の行列結果を省略せずに記載ください。
jotaku

2019/05/07 07:31

0行目の1は全て2 1行目の1は左端以外全て2 2行目の1は左端から2つ以外全て2 のような形です。
guest

回答1

0

ベストアンサー

「行列の上三角成分の値を変更する」と解釈しましたが、その意図であっていますでしょうか。

triu_indices_from で変更対象の上三角成分のインデックスを取得し、そのインデックスの View に値を代入してください。

numpy.triu_indices_from — NumPy v1.15 Manual

numpy - インデックスを作成する関数

python

1import numpy as np 2 3a = np.ones((10, 12)) 4print(a) 5 6a[np.triu_indices_from(a)] = 2 7print(a)
[[2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2.] [1. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2.] [1. 1. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2.] [1. 1. 1. 2. 2. 2. 2. 2. 2. 2. 2. 2.] [1. 1. 1. 1. 2. 2. 2. 2. 2. 2. 2. 2.] [1. 1. 1. 1. 1. 2. 2. 2. 2. 2. 2. 2.] [1. 1. 1. 1. 1. 1. 2. 2. 2. 2. 2. 2.] [1. 1. 1. 1. 1. 1. 1. 2. 2. 2. 2. 2.] [1. 1. 1. 1. 1. 1. 1. 1. 2. 2. 2. 2.] [1. 1. 1. 1. 1. 1. 1. 1. 1. 2. 2. 2.]]

投稿2019/05/07 07:41

編集2019/05/07 07:43
tiitoi

総合スコア21956

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

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

jotaku

2019/05/07 07:51

for文で無理やり作成したのですがこのような機能があったのですね大変参考になりましたありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問