・スライス機能で数値計算を行うにあたり処理の条件分岐ができるように実現したいです。
現在、2次元配列の数値計算のプログラムを作成しています。
以前作成した2重ループの数値計算のプログラムでは問題なく
前ステップの値(i-194)が-1より小さかったら処理1
前ステップの値(i-194)が-1より大きかったら処理2
となるような計算はされていますが配列が巨大なためものすごく時間がかかってしまいます(下に載せてあります)。
ということもありスライス機能を使って高速化させようと思ったのですが、一度にすべて計算してしまうスライス機能で処理の条件分岐ができるのか知りたいです。
またほかの良い方法がありましたら是非ご教授宜しくお願い致します...
#2重ループの数値計算のプログラム
c1=1190000
c2=113000000
c3=1.66
h1=0.003
kf1=0.00034
kl1=0.0004
x=1.2
for i in range(194, prd.shape[0]):
for j in range(prd.shape[1]):
if prd[i-194,j]<=-1:
prd[i,j]=prd[i-194,j]+2/(x*np.log(c1+c2/(0-prd[i-194,j])**c3))*(h1*(24-prd[i-194,j])+(kf1+(kl1-kf1)*(0+1)/(0-prd[i-194,j]))*(prd[i-194,j-1]-2*prd[i-194,j]+prd[i-194,j+1])/x)
else:
prd[i,j]=prd[i-194,j]+2/(x*np.log(c1))*(h1*(24-prd[i-194,j])+kl1*(prd[i-194,j-1]-2*prd[i-194,j]+prd[i-194,j+1])/x)
#スライスのプログラム
c1=1190000
c2=113000000
c3=1.66
h1=0.003
kf1=0.0034
kl1=0.004
x=1.2
for i in range(194, prd.shape[0]):
for j in range(1, prd.shape[1]):
if prd[i-194, j]<=-1:
prd[i, 1:]=prd[i-194, 1:]+2/(x*np.log(c1+c2/(0-prd[i-194, 1:j])**c3))*(h1*(24-prd[i-194, 1:])+(kf1+(kl1-kf1)*(0+1)/(0-prd[i-194, 1:]))*(prd[i-194, 0:-1]-2*prd[i-194, 1:]+prd[i-194, 2:])/x)
if prd[i-194, 1:]>-1:
prd[i, 1:]=prd[i-194, 1:]+2/(x*np.log(c1))*(h1*(24-prd[i-194, 1:])+kl1*(prd[i-194, 0:-1]-2*prd[i-194, 1:]+prd[i-194, 2:])/x)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(パソコン・スマホ・電化製品) ノートパソコンとテレビを無線で繋ぎたいです。 2 2023/02/15 22:23
- 外国株 SBI証券でidecoを検討しています。 SBI証券ホームページ(https://go.sbisec 1 2022/10/10 16:06
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- C言語・C++・C# C言語 3 2022/11/09 13:27
- その他(プログラミング・Web制作) atcoder python コードへの助言 2 2022/08/12 15:31
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- その他(プログラミング・Web制作) listへのappendが出来ない件 1 2022/12/06 21:44
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
基本情報技術者試験詳しい方へ...
-
Excelでのセル内容の高速消去方法
-
win10で、正確な待ち時間の作り方
-
「単体テスト」に関する深刻な...
-
C言語:関数を使うメリットとデ...
-
VBでの簡易電卓の作成(減算方...
-
Excel VBA での処理時間計測結...
-
ノットイコールを教えて下さい
-
Chat GPTに、課題として、二と...
-
VBA:CSVファイルの読出し手法...
-
DoEvents関数って何?
-
SQLの速度をあげるには・・・
-
ゲームプログラミングの乱数で...
-
小数点を含む数値かどうか判断...
-
入力した任意の数の平方根を求める
-
実行時のCPU使用率を増やしたい
-
イベントドリブン
-
Macターミナルで実行中のプログ...
-
緯度、経度の 10進法と 60進法...
-
逆コンパイルと逆アセンブルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DoEvents関数って何?
-
win10で、正確な待ち時間の作り方
-
Excelでのセル内容の高速消去方法
-
小数点を含む数値かどうか判断...
-
Chat GPTに、課題として、二と...
-
SQLの速度をあげるには・・・
-
絶対パスの取得について
-
WebBrowserの読み込み待ちの処...
-
実行時のCPU使用率を増やしたい
-
プログラム上のCPU稼働率低減に...
-
ノットイコールを教えて下さい
-
C言語:関数を使うメリットとデ...
-
Excel(VBA)でSetTimer関数を使...
-
あっち向いてホイのプログラム...
-
VC++2010 GDIオブジェクトの解...
-
If Not c Is Nothing Then ~延...
-
Excel VBA での処理時間計測結...
-
符号付きにすべきか、符号なし...
-
ソートにかかった時間を測りたい。
-
プログラミングの授業でPython...
おすすめ情報