python:定义函数,输入一个m维数组X和一个整数n,输出一个n*m的矩阵M,其中 M[i] [j]=

输入一个向量和一个整数,返回一个矩阵,矩阵第一行等于这个向量,矩阵第二行是这个向量的二次方,第三行是这个向量的三次方,依次类推,矩阵的行数等于这个输入的整数(数组和矩阵都用numpy实现)

# Python3.6
import numpy as np

while True:
    x = input("输入一个m维数组,元素以空格分开:")
    try:
        # split input
        x = x.split()
        s = []
        # iterate:str-->int
        for i in x:
            s.append(int(i))
        x = s
        break
    except:
        print("输入有错,请重新输入。")
while True:
    n = input("整数n:")
    try:
        n = int(n)
        break
    except:
        print("输入有错,请重新输入。")

# map object -->list object
lst = [i for i in x]

# list object -->numpy.array object
mtrx = np.array(lst)

# copy the 1st line of matrix as a template
mtrx_1 = np.copy(mtrx)

k = len(mtrx)
# reshape (k,) to (1,k) for concatenate
mtrx = np.reshape(mtrx, (1, k))

# calculate left lines
for i in range(1, n):
    tmp = np.power(mtrx_1, i+1)
    tmp = np.reshape(tmp, (1, k))
    mtrx = np.concatenate((mtrx, tmp), axis=0)
print(mtrx)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-21
#m为行,n为列的情况 while 1: try: m = int(raw_input('input number m:')) try : n = int(raw_input('input number n:')) except : print 'n must be a number!' else: if m 0 or m > 9: print 'm must between 0 and 9.' elif n 0 or n > 9: print 'n must between 0 and 9.' else: break except : print 'm must be a number!'for x in xrange(1,m+1): for y in xrange(1,n+1): print '%s*%s=%s ' % (x,y,x*y), print '\n',追问

请问能采用numpy模块来编程吗?

本回答被网友采纳