質問するログイン新規登録

回答編集履歴

3

2025/08/05 00:52

投稿

melian
melian

スコア21343

answer CHANGED
@@ -1,6 +1,4 @@
1
- `numpy.loadtxt` で読み込んで、4列の2次元配列(`shape (-1, 4)` data[*blk[1:3].astype(int)] = blk[3]
1
+ `numpy.loadtxt` で読み込んで、4列の2次元配列(`shape (-1, 4)`)に変換するとよいかと思います。
2
- data[*blk[1:3].astype(int)] = blk[3]
3
- )に変換するとよいかと思います。
4
2
  ```python
5
3
  import numpy as np
6
4
  import pandas as pd

2

Pandas の read_csv() ではなく Numpy の loadtxt() を利用

2025/08/05 00:51

投稿

melian
melian

スコア21343

answer CHANGED
@@ -1,4 +1,6 @@
1
+ `numpy.loadtxt` で読み込んで、4列の2次元配列(`shape (-1, 4)` data[*blk[1:3].astype(int)] = blk[3]
1
- `pandas.read_csv()` `chunksize` を指定するとよいかと思います。
2
+ data[*blk[1:3].astype(int)] = blk[3]
3
+ )に変換するとよいかと思います。
2
4
  ```python
3
5
  import numpy as np
4
6
  import pandas as pd
@@ -8,10 +10,9 @@
8
10
  R = []
9
11
  for f in data_files:
10
12
  data = np.zeros((2, 2))
11
- # 4行ごとに読み込み(空行はスキップされる)
13
+ # 4行ごとに分割(空行はスキップされる)
12
- for blk in pd.read_csv(f, header=None, chunksize=4):
14
+ for blk in np.loadtxt(f).reshape((-1, 4)):
13
- blk = blk.to_numpy()
14
- data[blk[1].astype(int), blk[2].astype(int)] = blk[3]
15
+ data[*blk[1:3].astype(int)] = blk[3]
15
16
  R.append(data)
16
17
 
17
18
  A = block_diag(*R)

1

配列のインデックスがfloat型になっているのを修正(int型に変換)

2025/07/31 05:44

投稿

melian
melian

スコア21343

answer CHANGED
@@ -11,7 +11,7 @@
11
11
  # 4行ごとに読み込み(空行はスキップされる)
12
12
  for blk in pd.read_csv(f, header=None, chunksize=4):
13
13
  blk = blk.to_numpy()
14
- data[blk[1], blk[2]] = blk[3]
14
+ data[blk[1].astype(int), blk[2].astype(int)] = blk[3]
15
15
  R.append(data)
16
16
 
17
17
  A = block_diag(*R)