如何自定義讓使用者輸入數字來建立矩陣呢?
一般來說建立陣列可以是如下的方法:
import numpy as np
a = np.array([1,3,4]) #一維陣列
b = np.array([1,3,4],[4,5,6]) #二維陣列
c = np.array([1,3,4],[4,5,6],[7,8,9]) #三維陣列
print(a)
print(b)
print(c)
>>>[1,3,4]
>>>[
[1,3,4],
[4,5,6]
]
>>>[
[1,3,4],
[4,5,6],
[7,8,9]
]
但是今天要手動讓使用者輸入的話我們就要進行轉換!
使用者輸入一定會有input()的用法,通常是有序的序列才能轉成矩陣(例如list)
假如今天是這樣的:
a = list()
for i in range(5):
a.append(input())
print(a)
意思是讓使用者輸入五次,然後把輸入的內容放進a這個容器裏頭,再印出來。
這時候要轉換成矩陣的話就是靠函式庫Numpy
輸入:
import numpy as np
a = list()
for i in range(6):
a.append(input())
matrix = np.array(a)
print(matrix)
print(type(matrix))
輸出:
1
2
3
4
5
6
['1' '2' '3' '4' '5' '6']
<class 'numpy.ndarray'>
這還是一維的陣列,若要變成二維或是三維的話就可以使用reshape的語法
輸入:
import numpy as np
a = list()
for i in range(6):
a.append(input())
matrix = np.array(a)
new_matrix = matrix.reshape(3,2)
print(new_matrix)
#要記住維度的大小要跟輸入的數量要一樣否則這樣的轉換方法會失效,比如輸入6個數字(range(6)),rehsape的數字相乘(3x2=6)就要等於6
輸出:
[['1' '2']
['3' '4']
['5' '6']]