ホームページ  >  記事  >  バックエンド開発  >  Python で複数行の繰り返しデータを生成する方法

Python で複数行の繰り返しデータを生成する方法

PHPz
PHPz転載
2023-05-11 13:16:131732ブラウズ

はじめに

科学計算やシミュレーションを行うとき、多くの友人がこのような問題に遭遇すると思います。たとえば、次のような 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関数を使用する

明らかに、上記の方法はより面倒です。簡略化するために、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 関数を使用する

もちろん、この状況では、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 サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。