1. 程式人生 > >python中一些常用的函式(不定時更新)

python中一些常用的函式(不定時更新)

一、random函式

import random
# 在1~20中隨機取一個數
print(random.choice(range(1, 20)))
9
# 在1~20中隨機取五個陣列成一個列表
print(random.choices(range(1, 20), k=5))
[3, 1, 8, 2, 15]
# 在1~20中隨機取五個陣列成一個列表,weights是相對權重列表
print(random.choices(range(1, 20), k=5, weights=range(1, 20)))
[3, 19, 2, 14, 13, 16]
# 在1~20中隨機取五個不重複的數
print
(random.sample(range(1,20), k=6)) [0.1, 1, 6] # 將列表的元素順序打亂 l = [1, 6, 0.1] random.shuffle(l) print(l)

二、numpy函式關於矩陣的一些操作

import numpy as np
# 生成一個2 * 4維的隨機陣列
a = np.random.rand(2, 4)
# 將陣列轉化為矩陣
r = np.matrix(a)
# 生成一個3維的全零陣列
z = np.zeros(3)
# 生成一個2 * 3的值全為0的陣列
a = np.zeros([2, 3])

zeros函式類似的還有np.ones,這裡不贅述。

import numpy as np
# 生成一個從0~15的順序陣列
a = np.arange(15)
# 將這個陣列重新化成新維度的陣列,其中15 = 5 × 3
print(a.reshape(5,3))

找出np array陣列的最值及索引

a = np.arange(9).reshape((3,3))
a
array([[0, 1, 2],
       [9, 4, 5],
       [6, 7, 8]])
print(np.max(a))        # 全域性最大
8
print(np.max(a,axis=0)) # 每列最大
[6 7 8]
print(np.
max(a,axis=1)) # 每行最大 [2 5 8]

然後用where得到最大值的索引,返回值中,前面的array對應行數,後者對應列數

print(np.where(a==np.max(a)))
(array([2], dtype=int64), array([2], dtype=int64))
print(np.where(a==np.max(a,axis=0)))
(array([2, 2, 2], dtype=int64), array([0, 1, 2], dtype=int64))

如果array中有相同的最大值,where會將其位置全部給出

a[1,0]=8
a
array([[0, 1, 2],
       [8, 4, 5],
       [6, 7, 8]])
print(np.where(a==np.max(a)))
(array([1, 2], dtype=int64), array([0, 2], dtype=int64))