1
我對Python很陌生。我知道這個錯誤發生在一個人試圖用一個分數乘以一個字符串,即float。在我的情況下,我無法弄清楚numpy浮點數組是一個字符串。這是完整的代碼。TypeError:無法乘以類型爲'float'的非int類型的序列:使用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'
請幫忙!
'回溯(最近最後一次通話): 文件 「ZA.py」 22行,在 pv_za_temp.append(np.array(p_initial)) AttributeError的: 'numpy.ndarray' 對象有沒有屬性' append''這個錯誤在試圖將列表轉換爲NumPy數組後立即顯示出來[pv_za_temp = []' –
Moksha
2013-04-04 07:30:55
是的......可以使用'pv_za_temp = np.array(p_initial)':)來解決這個錯誤 – Moksha 2013-04-04 07:39:08
這是主題的輕微轉移。我不知道我是否應該開始一個新的線程。如何將NumPy浮點數組寫入文件?這是我得到的錯誤fo.write('{0:f} {1:f} \ n'.format(np.array(p_initial),np.array(pv_za))) ValueError:Unknown format代碼'f'用於'str''類型的對象 – Moksha 2013-04-04 07:42:44