【python】numpy常用属性

首先导入numpy

import numpy as np

np.range

np.range(start, end, step): 获取指定区间和步长的列表。

np.arange(0, 1, 0.1)  # 区间: [0, 1), 步长: 0.1

在这里插入图片描述

np.quantile

np.quantile(mlst, bins):按指定比例获取数据列表的分位数值。比如: 要获取mlst=[0,1,2,3,4]bins=[0.5]分位数(即50%分位数):bined=[2]

# 指定比例
bins = np.arange(0, 1, 0.1) 
# 数据列表
mlst = range(0, 101)
# 分位数值
mqtl = np.quantile(mlst, bins)
mqtl

在这里插入图片描述

np.digitize

np.digitize(mlst, bined):对应mlst列表中的数据落在bined对应数值(区域)的索引。

mlst = range(0, 101)
bins = np.arange(0, 1, 0.1)
mqtl = np.quantile(mlst, bins)
binned = np.digitize(mlst, mqtl)
binned

在这里插入图片描述

np.random

rand

np.random.rand(int):生成int个[0,1)之间的随机数

np.random.rand(4)

注意:多次随机输出的数据不同。
在这里插入图片描述

seed

np.random.seed(int):生成随机数前,指定随机种子为int,用于固定随机输出值。

np.random.seed(0)  # 指定种子为0
np.random.rand(4)  # 生成4个[0,1)之间的随机数

注意:固定种子后,多次随机生成的值相同。
在这里插入图片描述

permutation

np.random.permutation(list):打乱原来的list顺序。

np.random.permutation(range(10))

在这里插入图片描述

np.unique

np.unique(list, return_inverse=True) 对list去重复,return_inverse指定是否返回:原数组元素对应的去重后的索引。

lst = np.array([1,2,3,2,3,4,5])
ulst, ilst = np.unique(lst, return_inverse=True)
print(ulst)
print(lst)
print(ilst)

在这里插入图片描述

np.zeros

生成全为0的数组,可以指定多个维度。

np.zeros(5)
np.zeros((3, 5))
np.zeros((3, 2, 5))

在这里插入图片描述
也可通过np.zero_like获取相同形状的数组。

np.zeros_like([1,2,3])
np.zeros_like([[1,2,3], [2,3,4]])

在这里插入图片描述

np.sum

对数组求和。

np.sum([1,2,3])  # 求所有元素之和
np.sum([[1,2,3], [2,3,4]])  # 求所有元素之和
np.sum([[1,2,3], [2,3,4]], 0)  # 按列求和
np.sum([[1,2,3], [2,3,4]], 1)  # 按行求和

在这里插入图片描述
类似求和:求均值np.mean、求最小np.min、求最大np.max
在这里插入图片描述
在这里插入图片描述

np.argmin/max/sort/where

获取最小值或最大值的索引argminargmax

np.argmax([1,2,10,8,15])  # 最大值索引, 返回4
np.argmin([1,2,0])  # 最小索引,返回2

在这里插入图片描述
还可以获取排序后,原来的元素的索引:argsort

np.argsort([10,2,1,8])  # 排序后是[1,2,8,10], 返回对应排序后的索引

在这里插入图片描述
argwhere获取非0的索引

np.argwhere([0,2,1,8,0,5])  # 返回非0值的索引

在这里插入图片描述

np.log

np.log e e e为底取对数。np.log2 2 2 2为底。np.log10 10 10 10为底。

lst = np.array([1,2,3,2,3,4,5])
np.log(lst)

取对数前后:

import matplotlib.pyplot as plt
p1 = plt.scatter(range(len(lst)), lst, label='raw')
p2 = plt.scatter(range(len(lst)), np.log(lst), label='log')
plt.legend()

在这里插入图片描述

transpose

转置。与.T相同。

np.array([[1,2,3], [2,3,4]]).transpose()
np.array([[1,2,3], [2,3,4]]).T

在这里插入图片描述

bool判断

np.array([1,2])!=0

在这里插入图片描述

np.concatenate

把多层数组/列表展开:np.concatenate

np.concatenate([[1,2,3], [2,2,3]])
np.concatenate([[1,2,3], [2,3]])  # 子元素长度不等
np.concatenate([1,2,3])  # 一维不能使用

在这里插入图片描述

np.bincount

统计>=0的整数的出现次数:np.bincount

np.bincount([1,2,3,6])  # 先找到最大值为6, 然后统计0到6的整数(7个)出现的次数
np.bincount([1,2])
np.bincount([0, 0.1,0.2])  # 浮点数则视为0
np.bincount([-1,-2])  # 负数不可用

在这里插入图片描述

未完待续。。。

RandomState
np.random.RandomState(int_seed)

default_rng
np.random.default_rng(int_seed)

更多:

  • numpy数学运算属性:https://numpy.org/doc/stable/reference/routines.math.html

编写日志

2023.10.25:新增
2023.11.14:增加 np.argmin/max/sort/wherenp.concatenatenp.bincount

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值