72653


以下のようなテキストデータがあります。

[code]

    1 10
    1 11
    1 12
    13 1
    13 14
    
[/code]

このtxtデータを読み取って、全ての値が1からなる新たな一列を加えたいです。  
つまり、アウトプットは以下のようになります。

[code]

    1 10 1
    1 11 1
    1 12 1
    13 1 1
    13 14 1
    
[/code]

以下のようなコードで単純に`append`をしたのですが、新たな列ではなく、２列目の値に１が追加されてしまいます。  
どのように改善すれば良いか教えてください。

[code]

    import numpy as np 
    
    with open(data_path) as f:
        w, h = [int(x) for x in next(f).split()] # w,h=データの形 最初のラインを読み込む
        array = []
        for line in f: # 残りのラインを読み込む
            array.append([int(x) for x in line.split()])
    
    for items in array:
        array.append(1)
        
    print(array)
    
[/code]


CC BY-SA 4.0
2020-12-14T11:20:33.653
72649
2020-12-14T13:27:40.997
36750
question
python python3
txtデータから読み取った値に新たな列を追加する方法

[code]

            array.append([int(x) for x in line.split()])
    
[/code]

をする際に `1` を追加してしまうと良いでしょう。

[code]

            array.append([int(x) for x in line.split()].append(1))
    
[/code]


CC BY-SA 4.0
2020-12-14T12:14:59.883
72651
2020-12-14T12:14:59.883
39645
72649
answer


`import numpy as np`
とされていますので、[numpy.loadtxt()](https://numpy.org/doc/stable/reference/generated/numpy.loadtxt.html#numpy-
loadtxt) と
[numpy.apply_along_axis()](https://numpy.org/doc/stable/reference/generated/numpy.apply_along_axis.html#numpy-
apply-along-axis) を使ってみます。

[code]

    import numpy as np
    
    f = np.loadtxt(data_path, dtype=int)
    array = np.apply_along_axis(lambda x: np.append(x, [1]), 1, f)
    print(array)
    
    [[ 1 10  1]
     [ 1 11  1]
     [ 1 12  1]
     [13  1  1]
     [13 14  1]]
    
[/code]


CC BY-SA 4.0
2020-12-14T13:27:40.997
72653
2020-12-14T13:27:40.997
72649
answer