python練手,numpy

來源:互聯網
上載者:User

標籤:個數   轉換   rgs   資料   隨機   dom   4行   max   str   

import numpy'''    -使用情境:建立向量和矩陣(numpy.ndarray)    -注意:numpy的ndarray要求所有元素的類型必須一致    -    假如你輸入的list元素類型不一致,轉換為ndarry的時候,會自動轉型。    -    例如,某個元素是str,其他元素是int,那麼,所有元素都會被轉型為str'''from sklearn.utils.fixes import astypevector = numpy.array(['001','zhangsan','man',24])print(type(vector))print(vector.dtype)print(vector)print(vector.shape)# <class 'numpy.ndarray'># <U8# ['001' 'zhangsan' 'man' '24']# (4,)matrix = numpy.array([[1.0,777,999.]])print(type(matrix))print(matrix.dtype)print(matrix)print(matrix.shape)# <class 'numpy.ndarray'># float64# [[   1.  777.  999.]]# (1, 3)matrix = numpy.array([['001','zhangsan','man','24'],['002','lisi','man','24']])print(type(matrix))print(matrix.dtype)print(matrix)print(matrix.shape)# <class 'numpy.ndarray'># <U8# [['001' 'zhangsan' 'man' '24']#  ['002' 'lisi' 'man' '24']]# (2, 4)'''    矩陣操作:'''matrix = numpy.array([['00','01','02','03'],                      ['10','11','12','13'],                      ['20','21','22','23'],                      ['30','31','32','33']])print(matrix.shape,matrix.ndim,matrix.size) # 行列數shape,緯度數ndim,元素個數size# (4, 4) 2 16print(matrix[:,1])  #只取第2列# ['01' '11' '21' '31']print(matrix[1,:])  #只取第2行# ['10' '11' '12' '13']print(matrix[1,1])  #只取第2行第2列# 11print(matrix[1:3,:])  #只取第2、3行 (注意 1:3 不含右邊邊界 第4行)# [['10' '11' '12' '13']#  ['20' '21' '22' '23']]print(matrix[:,1:3])  #只取第2、3列# [['01' '02']#  ['11' '12']#  ['21' '22']#  ['31' '32']]print(matrix[1:,1:]) #只取第2行之後的行,第2列之後的列# [['11' '12' '13']#  ['21' '22' '23']#  ['31' '32' '33']]print(matrix.dtype) #ndarray的類型# <U2print(matrix.astype(float)) #ndarray的類型 轉換# [[  0.   1.   2.   3.]#  [ 10.  11.  12.  13.]#  [ 20.  21.  22.  23.]#  [ 30.  31.  32.  33.]]print(matrix.astype(float).dtype) #ndarray的類型 轉換之後# float64'''    矩陣初始化:'''print(numpy.zeros((2,3))) #快速編造全0矩陣 (常用於矩陣初始化)# [[ 0.  0.  0.]#  [ 0.  0.  0.]]print(numpy.ones((2,3),dtype=numpy.int32)) #快速編造全1矩陣 (常用於矩陣初始化)# [[1 1 1]#  [1 1 1]]print(numpy.eye(3)) #單位方陣# [[ 1.  0.  0.]#  [ 0.  1.  0.]#  [ 0.  0.  1.]]print(numpy.eye(2,3)) #單位矩陣# [[ 1.  0.  0.]#  [ 0.  1.  0.]]print(numpy.arange(12))  #快速編造數列# [0 1 2 3 4 5 6 7 8 9 10 11]print(numpy.arange(12).reshape(3,4)) #重新排列矩陣# [[ 0  1  2  3]#  [ 4  5  6  7]#  [ 8  9 10 11]]print(numpy.arange(1,22,3)) #快速編造數列 起始值1 依次加3 直至小於22# [ 1  4  7 10 13 16 19]print(numpy.random.random((2)))  #隨機向量 0至1之間# [ 0.77478872  0.36609742]print(numpy.random.random((2,3)))  #隨機矩陣 0至1之間# [[ 0.72243154  0.33383428  0.11111886]#  [ 0.85122432  0.68508064  0.51619949]]print(numpy.linspace(0, 2, 10)) #在0至2之間,取10個數,平均的# [ 0.          0.22222222  0.44444444  0.66666667  0.88888889  1.11111111  1.33333333  1.55555556  1.77777778  2.        ]'''    矩陣運算:'''matrixA = numpy.array([[1,2,3],                       [4,5,6],                       [7,8,9]])matrixB = numpy.array([[-1,-2,-3],                       [-4,-5,-6],                       [-7,-8,-9]])print(matrixA + matrixB) #矩陣相加# [[0 0 0]#  [0 0 0]#  [0 0 0]]print(matrixA * 2) #矩陣數乘# [[ 2  4  6]#  [ 8 10 12]#  [14 16 18]]print(matrixA * matrixB) #矩陣對應元素相乘(姑且叫做點乘),新矩陣的元素,是原來兩個矩陣的對應元素相乘# [[ -1  -4  -9]#  [-16 -25 -36]#  [-49 -64 -81]]print(matrixA.dot(matrixB)) #矩陣相乘 行列相乘 或者 numpy.dot(matrixA,matrixB)# [[ -30  -36  -42]#  [ -66  -81  -96]#  [-102 -126 -150]]print(matrixA.T) #轉置# [[1 4 7]#  [2 5 8]#  [3 6 9]]print(numpy.vstack((matrixA,matrixB))) #行拼接# [[ 1  2  3]#  [ 4  5  6]#  [ 7  8  9]#  [-1 -2 -3]#  [-4 -5 -6]#  [-7 -8 -9]]print(numpy.hstack((matrixA,matrixB))) #列拼接# [[ 1  2  3 -1 -2 -3]#  [ 4  5  6 -4 -5 -6]#  [ 7  8  9 -7 -8 -9]]print(numpy.vsplit(matrixA,3)) #行切分# [array([[1, 2, 3]]), array([[4, 5, 6]]), array([[7, 8, 9]])]print(numpy.vsplit(matrixA,(0,1))) #行切分 在第0列切一刀 在第1列切一刀,愛切幾刀就幾刀# [array([], shape=(0, 3), dtype=int32), #  array([[1, 2, 3]]), #  array([[4, 5, 6],#        [7, 8, 9]])]print(numpy.hsplit(matrixA,3)) #列切分# [array([[1],#        [4],#        [7]]), #  array([[2],#        [5],#        [8]]), #  array([[3],#        [6],#        [9]])]matrixC = matrixA.view() #淺層複製,視圖,其實matrixA和matrixC都是共用同一份資料,不推薦使用viewmatrixC = matrixA.copy() #深層複製,整整的資料拷貝,matrixA和matrixC是兩份資料,互不干擾print(matrixC)# [[1 2 3]#  [4 5 6]#  [7 8 9]]matrixC = numpy.tile(matrixA,(2,3)) #複製,深層的,把矩陣按行按列各複製幾次print(matrixC)# [[1 2 3 1 2 3 1 2 3]#  [4 5 6 4 5 6 4 5 6]#  [7 8 9 7 8 9 7 8 9]#  [1 2 3 1 2 3 1 2 3]#  [4 5 6 4 5 6 4 5 6]#  [7 8 9 7 8 9 7 8 9]]matrixD = numpy.array([[1,-2,-3],                       [4,-5,-6],                       [7,-8,-9]])print(matrixD.argmax(axis=1)) #按行尋找,最大元素在該行中的索引# [0 0 0]print(matrixD.argmax(axis=0)) #按列尋找,最大元素在該行中的索引# [2 0 0]matrixE = numpy.array([[1,-2,-3],                       [9,3,4],                       [7,-8,-9]])print(numpy.sort(matrixE, axis=1)) #排序,按行,升序# [[-3 -2  1]#  [ 3  4  9]#  [-9 -8  7]]print(numpy.argsort(matrixE, axis=1)) #排序,按行,升序,返回座標矩陣# [[2 1 0]#  [1 2 0]#  [2 1 0]]print(numpy.sort(matrixE, axis=0)) #排序,按列,升序# [[ 1 -8 -9]#  [ 7 -2 -3]#  [ 9  3  4]]print(numpy.argsort(matrixE, axis=0)) #排序,按列,升序,返回座標矩陣# [[0 2 2]#  [2 0 0]#  [1 1 1]]


python練手,numpy

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.