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))

猜你喜欢

转载自blog.csdn.net/u011851421/article/details/83186420