淺談numpy數(shù)組初始化的幾種方法
1 使用list初始化
a=np.array([[1,2,3],[4,5,6]],dtype='float32') #a=[[1. 2. 3.],[4. 5. 6.]]
2 賦值與復制
(1)賦值
a=np.array([1,2,3]) b=a print(b is a) #True b[0]=0 print(a) #[0 2 3] print(b) #[0 2 3] print(b is a) #True
在賦值情形下,b 和 a 指向同一塊地址,b 改變,a 也隨著改變 。
a=np.array([1,2,3]) b=a[:2] print(b is a) #False b[0]=0 print(a) #[0 2 3] print(b) #[0 2]
在使用切片時,切片改變,原數(shù)據(jù)也會改變。
(2)復制
a=np.array([1,2,3]) b=a.copy() print(b is a) #False b[0]=0 print(a) #[1 2 3] print(b) #[0 2 3]
在復制情形下,b和a指向不同地址,b改變,a不會改變
3 隨機數(shù)初始化
3.1 區(qū)間內(nèi)隨機數(shù)
(1)np.random.uniform(low=0.0, high=1.0, size=None)
簡介:生成 [low,high) 內(nèi)的 size 個隨機數(shù),默認 [0,1) 之間,size 是 int 型或元組
a=np.random.uniform() #產(chǎn)生[0,1)內(nèi)的1個隨機數(shù) #a=0.1973408987805232 b=np.random.uniform(10,20,2) #產(chǎn)生[10,20)內(nèi)的2個隨機數(shù) #b=[10.15492129 12.8762581] c=np.random.uniform(1,5,(2,3)) #產(chǎn)生[1,5)內(nèi)2*3個隨機數(shù) #c=[[1.89354111 4.01642541 1.63691704],[3.23261205 4.81380553 4.51288251]]
(2)np.random.rand(d0,d1,...,dn)
簡介:生成 [0,1) 內(nèi)的 d0*d1*...*dn 個浮點數(shù),d0,d1,...,dn 表示數(shù)組維度
a=np.random.rand() #產(chǎn)生[0,1)內(nèi)的1個隨機數(shù) #a=0.7114622255979923 b=np.random.rand(2) #產(chǎn)生[0,1)內(nèi)的2個隨機數(shù) #b=[0.39094731 0.32324018] c=np.random.rand(2,3) #產(chǎn)生[0,1)內(nèi)的2*3個隨機數(shù) #c=[[0.30305566 0.70335946 0.71778137],[0.03069973 0.20145633 0.70092122]]
(3)np.random.randint(low, high=None, size=None, dtype=’l’)
簡介:生成 [low,high) 內(nèi)的 size 個整型隨機數(shù),默認1個 [0,low) 內(nèi)的隨機整數(shù)
a=np.random.randint(10) #產(chǎn)生[0,10)內(nèi)的1個隨機整數(shù) #a=6 b=np.random.randint(10,20) #產(chǎn)生[10,20)內(nèi)的1個隨機整數(shù) #b=14 c=np.random.randint(1,5,(2,3)) #產(chǎn)生[1,5)內(nèi)的2*3個隨機整數(shù) #c=[[4 2 2],[3 2 1]]
3.2 隨機全排列
(1) np.random.permutation(n)
簡介:若 n 為 int,生成 0~n-1 的一個隨機排列;若 n 為數(shù)組,生成此數(shù)組的一個隨機排列
a=np.random.permutation(10) #a=[5 9 6 8 7 4 0 3 1 2] x=np.array([2.2,4.4,6.6,8.8]) b=np.random.permutation(x) #x不變,b隨機 #b=[6.6 2.2 4.4 8.8]
(2)np.random.shuffle(arr)
簡介:將數(shù)組 arr 隨機打亂
a=np.array([1,3,5,7,9,0,2,4,6,8]) np.random.shuffle(a) #a=[6 5 9 8 0 3 4 2 1 7]
3.3 隨機部分排列
np.random.choice(a, size=None, replace=True, p=None)
簡介:若 a 為 int,從 0~a-1 中隨機挑選 size 個數(shù)排列;若 a 為數(shù)組,則從此數(shù)組中隨機挑選 size 個數(shù)排列。replace 表示是否允許元素重復
a=np.random.choice(10,7,replace=False) #a=[2 7 0 1 8 4 3] x=['a','b','c','d','e','f','g','h','i','j'] b=np.random.choice(x,5,replace=False) #b=['b' 'd' 'c' 'i' 'e']
4 全0與全1初始化
a=np.zeros(5,dtype='int32') #a=[0 0 0 0 0] b=np.zeros((2,3),dtype='int32') #b=[[0 0 0],[0 0 0]] c=np.ones(5,dtype='int32') #c=[1 1 1 1 1] d=np.ones((2,3),dtype='int32') #d=[[1 1 1],[1 1 1]]
5 等步長連續(xù)序列初始化
(1)np.arange(min,max,step=1)
簡介:生成 [min,max) 之間步長為 step 的序列,步長默認為1
a=np.arange(2,6) #a=[2 3 4 5] b=np.arange(2,3,0.2) #b=[2. 2.2 2.4 2.6 2.8]
(2)np.linspace(min,max,num=50)
簡介:生成 [min,max] 之間長度為num的序列,長度默認為50
a=np.linspace(6,8,5) #a=[6. 6.5 7. 7.5 8.] b=np.linspace(1,99) #b= #[1. 3. 5. 7. 9. 11. 13. 15. 17. 19. 21. 23. 25. 27. 29. 31. 33. 35. # 37. 39. 41. 43. 45. 47. 49. 51. 53. 55. 57. 59. 61. 63. 65. 67. 69. 71. # 73. 75. 77. 79. 81. 83. 85. 87. 89. 91. 93. 95. 97. 99.]
到此這篇關于淺談numpy數(shù)組初始化的幾種方法的文章就介紹到這了,更多相關numpy數(shù)組初始化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python爬蟲數(shù)據(jù)處理模塊的安裝使用教程
這篇文章主要為大家介紹了Python爬蟲數(shù)據(jù)處理模塊的安裝使用教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06