Fehler: float argument required, nicht numpy.ndarray

Ich erhalte eine Fehlermeldung beim ausführen des folgenden Programms. Ich bin versucht, zu schreiben die Ausgabe in eine Datei auf einem Datenträger.

import time
start_time = time.clock()

import numpy as np
theta=6
sigma=np.linspace(0,10,80)
Re=np.linspace(5,100,80)

import os
completeName = os.path.abspath("New Volume (F:)/new innings 2/Sigma at 100 @80 .txt")
file = open("Sigma at 100 @80.txt", "w")


for i in np.arange(0,80):
    mu=np.sqrt(Re[i]*sigma)
    A=(mu-1)*np.exp(mu)+(mu+1)*np.exp(-mu)
    B=2*mu*(theta-1)
    C=(A/B)

   D1=np.exp(mu)/2*(mu+sigma)
   D2=np.exp(-mu)/2*(mu-sigma)
   D3=mu**2
   D4=np.exp(-sigma)
   D5=sigma
   D6=mu**2-sigma**2
   D7=D3*D4
   D8=D5*D6
   H=D7/D8
   D9=(1/sigma)
   D=D1-D2+H-D9
   K1=C-D
   K11=np.array(K1)
   print K11
   file.write("%g\n" % K11)

file.close()
print time.clock() - start_time, "seconds"

Ich bin immer der Fehler

TypeError: float argument required, not numpy.ndarray 

entsprechend

file.write("%g\n" % K11)

Freundlicherweise einige Vorschläge machen. Vielen Dank im Voraus.

  • Es sagt genau dort: %g erwartet eine Zahl, die nicht ein ganzes array. Entweder Durchlaufen Sie schriftlich jeden ein-oder look-up-Numpy Besondere fileIO-Operationen
  • Was verstehen Sie nicht? Die Fehlermeldung sagt genau das problem; du bist die übergabe einer array, die kann nicht formatiert werden, mit '%g'.
  • Ich fragte hier nur, weil ich weiß nicht, wie zu schreiben, wird das gesamte array in eine Datei. Jede Anregung?
  • file.write(' '.join(str(a) for a in K11))
  • Danke Euch, sondern schreibt es in der form nicht zu unterscheiden. Können die Matrizen angeordnet werden, in einem besseren Weg?
  • Prüfen Sie hier: stackoverflow.com/questions/2891790/...

InformationsquelleAutor user3738922 | 2014-06-20
Schreibe einen Kommentar