Tensorflow入門 :關於數組的操作

tensorflow 入門 由於對numpy和opencv剛剛接觸,一些基本的函數用法在此記錄

array([元素1、元素2、….、元素N])

生成一個數組,數組屬性有dtype

arrange(n)生成0(包含)到n(不包含)的數字的 一維數組(ndarray)

更換數組維度

1.通過修改數組的shape屬性,在保持數組元素個數不變的情況下,改變數組每個軸的長度

# coding=utf-8
import numpy as np
arr1=np.arange(10)
print arr1
#變成2*5的數組
arr1.shape=2,5 
print arr1

輸出
[0 1 2 3 4 5 6 7 8 9] 
[[0 1 2 3 4] 
[5 6 7 8 9]]

2.使用數組的reshape方法,可以創建一個改變了尺寸的新數組,原數組的shape保持不變

# coding=utf-8
import numpy as np
arr1=np.arange(10)
print arr1
#生成一個新2*5的數組,原數組不爲變
arr1.reshape(2,5)
print arr1
arr2 = arr1.reshape(2,5)
print arr2
#數組arry1和arry2其實共享數據存儲內存區域,因此修改其中任意一個數組的元素都會同時修改另外一個數組的內容
arr1[0]= 10
print arr2
print arr1

[0 1 2 3 4 5 6 7 8 9] 
[0 1 2 3 4 5 6 7 8 9] 
[ 
[10 1 2 3 4] 
[ 5 6 7 8 9] 
] 
[10 1 2 3 4 5 6 7 8 9]
  1. 使用flatten或ravel展平數組
    這兩個方法都不會改變原有數組
# coding=utf-8
import numpy as np
arr1=np.arange(10).reshape(2,5)
print arr1
#用 ravel 函數來展平(轉成一維數組)
print arr1.ravel()
#原有數組arr1並沒有變化
print arr1
#也可使用 flatten,但 flatten 函數會請求分配內存來保存結果,而ravle只是用來展現視圖
print arr1.flatten()
#同樣原有數組arr1也沒有變化
print arr1

[[0 1 2 3 4] 
[5 6 7 8 9]] 
[0 1 2 3 4 5 6 7 8 9] 
[[0 1 2 3 4] 
[5 6 7 8 9]] 
[0 1 2 3 4 5 6 7 8 9] 
[[0 1 2 3 4] 
[5 6 7 8 9]]

4.使用transpose方法來轉置矩陣

# coding=utf-8
import numpy as np
arr1=np.arange(10).reshape(2,5)
print arr1
print arr1.transpose()



[[0 1 2 3 4] 
[5 6 7 8 9]] 
[[0 5] 
[1 6] 
[2 7] 
[3 8] 
[4 9]]

參考博客:http://blog.csdn.net/louisliaoxh/article/details/50203177

numpy.eye()
numpy.eye(N,M=None, k=0, dtype)
關注第一個第三個參數就行了
第一個參數:輸出方陣(行數=列數)的規模,即行數或列數
第三個參數:默認情況下輸出的是對角線全“1”,其餘全“0”的方陣,如果k爲正整數,則在右上方第k條對角線全“1”其餘全“0”,k爲負整數則在左下方第k條對角線全“1”其餘全“0”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章