私はPythonにかなり慣れていません。文字列に分数、つまり浮動小数点数を掛けようとすると、このエラーが発生することを知っています。私の場合、numpy 浮動小数点配列を文字列にする方法がわかりません。これでコードは完成です。
#!usr/bin/python
import os
import numpy as np
import matplotlib.pyplot as plt
import pylab
from numpy import *
# Declaration of constants
K = 3.14159265359
N= 10
p_za=[]
pv_za_temp=[]
#-----------------------
#Allotment of particles
#-----------------------
p_initial = np.linspace(0,2,num=10)
pv_za_temp.append(np.array(p_initial))
print pv_za_temp
#Displacement of particles using Zeldovich Approximation
def t_range(start, end, step):
while start <= end:
yield start
start += step
for t in t_range(0,1,0.1):
print t
p_za=[]
pv_za=[]
# Opening file in file_t format
fname = 'file_' + str(t) + '.dat'
fo = open(fname,'w')
# p_za.append(p_initial - t*K*np.sin(K*p_initial))
pv_za.append(K*np.sin(K*pv_za_temp))
pv_za_temp = []
pv_za_temp.append(np.array(pv_za))
エラーが表示されている行は次のとおりです。
pv_za.append(K*np.sin(K*pv_za_temp))
問題がわかりません。この行がエラーを示している場合、その上の行は完全にうまく機能しています。エラーメッセージは次のとおりです。
Traceback (most recent call last):
File "ZA.py", line 40, in <module>
pv_za.append(K*np.sin(K*pv_za_temp))
TypeError: can't multiply sequence by non-int of type 'float'
助けてください!