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

PHPz
リリース: 2023-05-11 13:16:13
転載
1724 人が閲覧しました

はじめに

科学計算やシミュレーションを行うとき、多くの友人がこのような問題に遭遇すると思います。たとえば、次のような 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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!