私はPython 3.6とnumpyを使用しています。Python/numpyの配列分割
hdf5ファイルから、私は2D配列であるテーブルの列を読みました。
配列の各行は、有限要素のノードのIDを保持します。
テーブルは、同じテーブル内の両方の下や高次要素を保持している(吸うが、私は変更することができ自由度ではありません)
だから配列を除いて、このようなものを(に見えるように構成されています8つのノードの行に対して行わ4ノードに1つ - それは、潜在的に数百万行)
[[1,2,3,4,0,0,0,0], #<- 4 Node quad data packed with zeros
[3,4,5,6,0,0,0,0],
[7,8,9,10,11,12,13,14], #<- 8 node quad in the same table as 4 node quad
[15,16,17,18,19,20,21,22]]
Iは、2つの別々のアレイ内にこの情報を分離する必要
を有すること。 4ノード列と1つの8つのノードの行を識別する1 -
[[1,2,3,4],
[3,4,5,6]]
[[7,8,9,10,11,12,13,14],
[15,16,17,18,19,20,21,22]]
今私は、各行に5値の値をチェックし、2つの索引アレイを作成、2次元アレイを反復です。
for element in elements:
if element[5] == 0:
tet4indices.append(index)
else:
tet10indices.append(index)
index+=1
それから私は、2つの配列
tet4s=elements[tet4indices, 0:5]
tet10s=elements[tet10indices,0:10]
上記の作品を取得するためにスライスインデックス配列を使用しますが、ちょっと醜いようです。
誰もがよりよい解決策を持っている場合、私はそれを聞いて感謝されると思います.....事前に
おかげで、それが行を見つけるのは簡単だアレイでは
ダグ
にされる別々のグループに4&8エレメント列又は混合? – hpaulj
4行と8行の要素の行を混ぜることができます – max375
@ max375あなたのケースを扱う一般的な答えを追加しました。 – kmario23