質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

730閲覧

配列要素を関数の引数に使えない...?

Piani

総合スコア8

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/11/06 04:37

編集2020/11/06 04:41

神経モデルの発火を試しにpythonで描画したく,以下のような関数を定義し,さらに引数を具体的に与えて動作を確認しようとしました.
すると,以下のような指示(エラー)をもらいました.

[エラーコード]

/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:4: RuntimeWarning: invalid value encountered in log after removing the cwd from sys.path. --------------------------------------------------------------------------- IndexError Traceback (most recent call last) <ipython-input-7-01559d672cf5> in <module>() 5 6 ----> 7 trial1 = leaky_int(I_0, t_array, tau, v_th) 8 plt.plot(t_array, trial1) 9 plt.xlabel('Time') <ipython-input-6-22594fce75bd> in leaky_int(I_0, t_array, tau, v_th) 10 if v >= v_th: 11 a = a + c ---> 12 v_array[t] = v 13 return v_array IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices

また,もともとのソースコードは以下になります.
[ソース]

import numpy as np import matplotlib.pyplot as plt # Leaky Integrator def leaky_int(I_0, t_array, tau,v_th): T = tau*np.log((tau*I_0)/tau*I_0-v_th) v_array = 0*t_array a = 0 for t in t_array: c = t - a v = (tau*I_0*(1-np.exp(-c/tau))) if v >= v_th: a = a + c v_array[t] = v return v_array I_0 = 0.13 #V t_array = np.linspace(0,0.1, 10000) tau = 0.0083 #s v_th = 1 #V trial1 = leaky_int(I_0, t_array, tau, v_th) plt.plot(t_array, trial1) plt.xlabel('Time') plt.ylabel('Voltage') #check T T = tau*np.log((tau*I_0)/tau*I_0-v_th) print(T)

どうぞよろしくお願いいたします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

v_array[t]におけるtはインデックス値であるべきなのにt_arrayの要素のfloat値であるため提示エラーが発生しています。
以下のようにenumerateを使ってインデックス値を与えると何らかグラフ表示されます。

Python

1import numpy as np 2import matplotlib.pyplot as plt 3 4# Leaky Integrator 5def leaky_int(I_0, t_array, tau,v_th): 6 T = tau*np.log((tau*I_0)/tau*I_0-v_th) 7 v_array = 0*t_array 8 a = 0 9 #for t in t_array: 10 for i,t in enumerate(t_array): # *** 11 c = t - a 12 v = (tau*I_0*(1-np.exp(-c/tau))) 13 if v >= v_th: 14 a = a + c 15 #v_array[t] = v 16 v_array[i] = v # *** 17 return v_array 18 19I_0 = 0.13 #V 20t_array = np.linspace(0,0.1, 10000) 21tau = 0.0083 #s 22v_th = 1 #V 23 24 25trial1 = leaky_int(I_0, t_array, tau, v_th) 26plt.plot(t_array, trial1) 27plt.xlabel('Time') 28plt.ylabel('Voltage') 29plt.show() 30 31#check T 32T = tau*np.log((tau*I_0)/tau*I_0-v_th) 33print(T)

イメージ説明

投稿2020/11/06 05:05

can110

総合スコア38268

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Piani

2020/11/06 05:08

実行までしていただきありがとうございます.なるほど,,enumerateというものがあるのですね!
Piani

2020/11/06 05:10

こちら,今までの値を変えずにインデックスも取得できるのでとても良いですね,,ありがとうございます.
guest

0

python

1t_array = np.linspace(0,0.1, 10000)

上記でt_arrayに小数点数があるのがエラーの原因です。

v_array[t] = vにて、tは整数でなければなりません。

投稿2020/11/06 05:01

meg_

総合スコア10602

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Piani

2020/11/06 05:05

ありがとうございます.勉強になりました.
guest

0

ベストアンサー

t_arrayが整数以外の値を含んでいるため、v_arrayへのインデックスアクセスに失敗しています。よく分かりませんが、例えば次のようにすれば今の問題を回避できるのではないでしょうか。

t_array = np.arange(10000)

投稿2020/11/06 04:58

tachikoma

総合スコア3601

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Piani

2020/11/06 05:04

回答ありがとうございます. なるほど,,整数のみなのですね. 他の部分との比を調整して,そちらで対応してみたいと思います.どうもありがとうございました.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問