numpy 的必須會的操作(二)

數組的連接 (concatenate的用法)

numpy 的必須會的操作(二)

軸的概念

axis=1實際上是說,只對行進行操作 axis=1實際上是說,只對列進行操作

  • axis = 0 可以簡寫成 0

求唯一值

<code>a = np.array([1,2,1,1,1,3,4,3,5,2,3])
np.unique(a) # array([1, 2, 3, 4, 5])/<code>

生成隨機數

<code>np.random.rand(3,4)  # rand函數根據給定維度生成[0,1)之間的數據,包含0,不包含1
np.random.randn(3,4) # randn函數返回均值=0,標準差=1,具有標準正態分佈。
np.random.normal(5,1,size=(3, 4)) #normal函數是正態分佈,但可以修改均值和標準差,第一個是均值,第二個是標準差,還可以傳入size
np.random.randint(1, 10, 10) #返回隨機整數,範圍區間為[low,high),包含low,不包含high
np.random.choice(3,3) #從給定的0到3中生成3個隨機數,還可以傳入size為數組維度/<code>
<code>array([[0.38791074, 0.66974604, 0.93553907, 0.84631092],
[0.31327352, 0.52454816, 0.44345289, 0.22957721],
[0.53441391, 0.91396202, 0.45720481, 0.43069857]])
array([[ 0.8858294 , 0.63190187, 0.04026035, -0.90312288],
[ 0.17532267, 0.19443089, -0.53524902, 0.77735121],
[ 0.17133845, -0.44285144, 1.70490377, 0.92434585]])
array([[3.69513876, 4.61942496, 4.25637299, 4.56287823],
[4.57354991, 6.3814073 , 5.09837051, 4.63054252],
[3.72678005, 6.0149868 , 3.51894029, 4.71290011]])
array([9, 7, 4, 8, 8, 5, 6, 4, 7, 9])
array([0, 2, 2])/<code>

固定隨機數 seed 的用法

  • 參數相同時使得每次生成的隨機數相同;當參數不同或者無參數時,作用與numpy.random.rand()函數相同,即多次生成隨機數且每次生成的隨機數都不同。
<code>import numpy as np 
for i in range(5):
np.random.seed(1) # 當這裡有數時,生成相同的隨機數
a = np.random.randint(1,10,10)
print(a)/<code>
<code>[6 9 6 1 1 2 8 7 3 5]
[6 9 6 1 1 2 8 7 3 5]
[6 9 6 1 1 2 8 7 3 5]
[6 9 6 1 1 2 8 7 3 5]
[6 9 6 1 1 2 8 7 3 5]/<code>

問題

使用random.randn創建 10*10 將所有小於0 的值替換為 0, 最後求每一列的均值

<code>a = np.random.rand(10,10)
a[(a<0)] = 0
a.mean(0)/<code>


分享到:


相關文章: