同时使用python2(例如Python 2.7.10)和python3(例如Python 3.6.4)

with open('in.txt') as f:

rows,cols=np.fromfile(f, dtype=int, count=2, sep=" ")

data = np.fromfile(f, dtype=int, count=cols*rows, sep=" ").reshape((rows,cols))

其他方式:同时使用python2(例如Python 2.7.10)和python3(例如Python 3.6.4),对于复杂矩阵也请参见下面的示例(仅将int更改为complex_in.txt)

with open('in.txt') as f:

data = []

cols,rows=list(map(int, f.readline().split()))

for i in range(0, rows):

data.append(list(map(int, f.readline().split()[:cols])))

print (data)

我更新了代码,此方法适用于初始in.txt文件中的任何数量的矩阵和任何种类的矩阵(complex_in.txt,complex,float)。

该程序作为应用程序产生矩阵乘法。 正在使用python2,为了使用python3进行以下更改

print to print()

print "%7g" %a[i,j], to print ("%7g" %a[i,j],end="")

剧本:

import numpy as np

def printMatrix(a):

print ("Matrix["+("%d" %a.shape[0])+"]["+("%d" %a.shape[1])+"]")

rows = a.shape[0]

cols = a.shape[1]

for i in range(0,rows):

for j in range(0,cols):

print "%7g" %a[i,j],

print

print

def readMatrixFile(FileName):

rows,cols=np.fromfile(FileName, dtype=int, count=2, sep=" ")

a = np.fromfile(FileName, dtype=float, count=rows*cols, sep=" ").reshape((rows,cols))

return a

def readMatrixFileComplex(FileName):

data = []

rows,cols=list(map(int, FileName.readline().split()))

for i in range(0, rows):

data.append(list(map(complex, FileName.readline().split()[:cols])))

a = np.array(data)

return a

f = open('in.txt')

a=readMatrixFile(f)

printMatrix(a)

b=readMatrixFile(f)

printMatrix(b)

a1=readMatrixFile(f)

printMatrix(a1)

b1=readMatrixFile(f)

printMatrix(b1)

f.close()

print ("matrix multiplication")

c = np.dot(a,b)

printMatrix(c)

c1 = np.dot(a1,b1)

printMatrix(c1)

with open('complex_in.txt') as fid:

a2=readMatrixFileComplex(fid)

print(a2)

b2=readMatrixFileComplex(fid)

print(b2)

print ("complex matrix multiplication")

c2 = np.dot(a2,b2)

print(c2)

print ("real part of complex matrix")

printMatrix(c2.real)

print ("imaginary part of complex matrix")

printMatrix(c2.imag)

作为输入文件,我采用complex_in.txt:

4 4

1 1 1 1

2 4 8 16

3 9 27 81

4 16 64 256

4 3

4.02 -3.0 4.0

-13.0 19.0 -7.0

3.0 -2.0 7.0

-1.0 1.0 -1.0

3 4

1 2 -2 0

-3 4 7 2

6 0 3 1

4 2

-1 3

0 9

1 -11

4 -5

和complex_in.txt

3 4

1+1j 2+2j -2-2j 0+0j

-3-3j 4+4j 7+7j 2+2j

6+6j 0+0j 3+3j 1+1j

4 2

-1-1j 3+3j

0+0j 9+9j

1+1j -11-11j

4+4j -5-5j

输出看起来像:

Matrix[4][4]

1 1 1 1

2 4 8 16

3 9 27 81

4 16 64 256

Matrix[4][3]

4.02 -3 4

-13 19 -7

3 -2 7

-1 1 -1

Matrix[3][4]

1 2 -2 0

-3 4 7 2

6 0 3 1

Matrix[4][2]

-1 3

0 9

1 -11

4 -5

matrix multiplication

Matrix[4][3]

-6.98 15 3

-35.96 70 20

-104.94 189 57

-255.92 420 96

Matrix[3][2]

-3 43

18 -60

1 -20

[[ 1.+1.j 2.+2.j -2.-2.j 0.+0.j]

[-3.-3.j 4.+4.j 7.+7.j 2.+2.j]

[ 6.+6.j 0.+0.j 3.+3.j 1.+1.j]]

[[ -1. -1.j 3. +3.j]

[ 0. +0.j 9. +9.j]

[ 1. +1.j -11.-11.j]

[ 4. +4.j -5. -5.j]]

complex matrix multiplication

[[ 0. -6.j 0. +86.j]

[ 0. +36.j 0.-120.j]

[ 0. +2.j 0. -40.j]]

real part of complex matrix

Matrix[3][2]

0 0

0 0

0 0

imaginary part of complex matrix

Matrix[3][2]

-6 86

36 -120

2 -40

更多推荐

python读取文件中的数字_如何在Python中从文件中读取数字?