科学計算やシミュレーションを行うとき、多くの友人がこのような問題に遭遇すると思います。たとえば、次のような 1 次元配列があります:
array = [1, 2, 3, 4, 5]
現時点ではをy軸方向に繰り返し積み上げたいので、例えばここでは3回設定すると以下の配列が得られます。
[[1. 2. 3. 4. 5.] [1. 2. 3. 4. 5.] [1. 2. 3. 4. 5.]]
それでは、どうすればいいでしょうか?
import numpy as np array = np.array([1, 2, 3, 4, 5]) # 原始数组 repeat_time = 3 # 沿着y轴堆叠的次数 array_final = np.ones([repeat_time, len(array)]) for i in range(repeat_time): array_final[i, :] = array print(array_final) """ result: [[1. 2. 3. 4. 5.] [1. 2. 3. 4. 5.] [1. 2. 3. 4. 5.]] """
明らかに、上記の方法はより面倒です。簡略化するために、np.repeat()関数を使用して実装できます。この機能。
import numpy as np array = np.array([1, 2, 3, 4, 5]) # 原始数组 repeat_time = 3 # 沿着y轴堆叠的次数 array_final = np.repeat(array.reshape(1, -1), axis=0, repeats=repeat_time) print(array_final) """ result: [[1 2 3 4 5] [1 2 3 4 5] [1 2 3 4 5]] """
np.repeat() 関数の詳しい使用方法については、この記事-----np.repeat() 関数を参照してください。
もちろん、この状況では、np.meshgrid() 関数を使用して処理するのが最も簡単な方法です。
import numpy as np array = np.array([1, 2, 3, 4, 5]) # 原始数组 repeat_time = 3 # 沿着y轴堆叠的次数 array_1 = array.copy()[0:repeat_time] array_final, array_final1 = np.meshgrid(array, array_1) print(array_final) """ result: [[1 2 3 4 5] [1 2 3 4 5] [1 2 3 4 5]] """
もちろん、この操作を実現できる np.vstack() 関数や np.concatenate() 関数など、他のメソッドもあります。これら 2 つの関数については、ブログ-----np.concatenate() 関数と np.vstack() 関数を参照してください。
以上がPython で複数行の繰り返しデータを生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。