Numpy基础:总结篇

1.ndarray

1.1 ndarray的生成

利用np.array可自动将序列转换为n维数组

data1 = [6, 7.5, 8, 0, 1]
arr1 = np.array(data1)
arr1
#-------------------------------
data2 = [[1, 2, 3, 4], [5, 6, 7, 8]]
arr2 = np.array(data2)
arr2

可以利用.ndim查看维度数.shape查看形状.dtype数据的类型

1.2 特殊函数构造

  • np.asarray(a, dtype=None, order=None, *, like=None)
  • 全零:numpy.zeros(shape, dtype=float, order=‘C’)
  • 全一:numpy.ones(shape, dtype=float, order=‘C’)
    -全空: numpy.empty(shape, dtype=float, order=‘C’)
  • 等差:numpy.arange([start,] stop, [step,], dtype=None)
  • 等间隔:numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
  • 斜角为1:numpy.eye(N, M=None, k=0, dtype=float, order=‘C’)
  • 随机:numpy.random.rand(d0, d1, …, dn)
  • 正态随机:numpy.random.randn(d0, d1, …, dn)
  • 填充指定数字:numpy.full(shape, fill_value, dtype=None, order=‘C’)
  • 单位阵:numpy.identity(n, dtype=float)

1.3 数据类型

数据类型 描述字符代码
int8 8 位有符号整数(-128 到 127) 'i1'
int16 16 位有符号整数(-32768 到 32767) 'i2'
int32 32 位有符号整数(-2147483648 到 2147483647) 'i4'
int64 64 位有符号整数(-9223372036854775808 到 9223372036854775807) 'i8'
uint8 8 位无符号整数(0 到 255) 'u1'
uint16 16 位无符号整数(0 到 65535) 'u2'
uint32 32 位无符号整数(0 到 4294967295) 'u4'
uint64 64 位无符号整数(0 到 18446744073709551615) 'u8'
float16 16 位浮点数(半精度) 'f2'
float32 32 位浮点数(单精度) 'f4'
float64 64 位浮点数(双精度) 'f8'
float128 128 位浮点数(扩展精度,取决于平台) 'f16'
complex64 64 位复数,由两个 32 位浮点数组成(实部和虚部) 'c8'
complex128 128 位复数,由两个 64 位浮点数组成(实部和虚部) 'c16'
complex256 256 位复数,由两个 128 位浮点数组成(实部和虚部,取决于平台) 'c32'
bool_ 布尔类型(True 或 False) '?'
object_ Python 对象类型 'O'
string_ 固定长度的字符串类型(默认长度为 1) 'S'
unicode_ 固定长度的 Unicode 字符串类型(默认长度为 1) 'U'

2.索引与切片

一言以蔽之,[]中逗号“,”分割整体,“:”表示集合
一般索引与切片:arr[ x x x][ y y y][ z z z]······或者arr[ x x x y y y z z z,······]
神奇索引:arr[[ x x x y y y z z z,······]]
布尔索引:两个矩阵重叠
具体详见:Numpy基础(二)索引与切片

3. 操作

3.1数组运算

arr = np.array([[1., 2., 3.], [4., 5., 6.]])
arr
arr * arr
arr - arr
'''
array([[1., 2., 3.],
       [4., 5., 6.]])
array([[ 1.,  4.,  9.],
       [16., 25., 36.]]) 
array([[0., 0., 0.],
       [0., 0., 0.]])             
'''
1 / arr
arr ** 0.5
'''
array([[1.    , 0.5   , 0.3333],
       [0.25  , 0.2   , 0.1667]])
array([[1.    , 1.4142, 1.7321],
       [2.    , 2.2361, 2.4495]])
'''
arr2 = np.array([[0., 4., 1.], [7., 2., 12.]])
arr2
arr2 > arr
'''
array([[ 0.,  4.,  1.],
       [ 7.,  2., 12.]])
array([[False,  True, False],
       [ True, False,  True]])
'''

3.2 换轴

arr.T
arr.transpose((1, 0, 2))
arr.swapaxes(1, 2)

3.3 通用函数

函数名称描述主要参数
np.add(x1, x2)逐元素相加(等价于 x1 + x2x1, x2: 输入数组;out(可选): 输出数组
np.subtract(x1, x2)逐元素相减(等价于 x1 - x2同上
np.multiply(x1, x2)逐元素相乘(等价于 x1 * x2同上
np.divide(x1, x2)逐元素除法(等价于 x1 / x2同上
np.true_dividenp.divide 相同,返回浮点结果同上
np.floor_divide逐元素向下取整除法(等价于 //同上
np.power(x1, x2)逐元素计算 x1x2 次幂(等价于 x1 ** x2x1: 基数;x2: 指数
np.sqrt(x)逐元素计算平方根x: 输入数组
np.square(x)逐元素计算平方(等价于 x ** 2同上
np.exp(x)逐元素计算自然指数(e^x同上
np.log(x)逐元素计算自然对数(ln(x)同上
np.log10(x)逐元素计算以10为底的对数同上
np.log2(x)逐元素计算以2为底的对数同上
np.sin(x)逐元素计算正弦值同上
np.cos(x)逐元素计算余弦值同上
np.tan(x)逐元素计算正切值同上
np.arcsin(x)逐元素计算反正弦值同上
np.arccos(x)逐元素计算反余弦值同上
np.arctan(x)逐元素计算反正切值同上
np.sinh(x)逐元素计算双曲正弦值同上
np.cosh(x)逐元素计算双曲余弦值同上
np.tanh(x)逐元素计算双曲正切值同上
np.absolute(x)逐元素计算绝对值(等价于 abs(x)同上
np.sign(x)逐元素返回符号(-1, 0, 1)同上
np.ceil(x)逐元素向上取整同上
np.floor(x)逐元素向下取整同上
np.rint(x)逐元素四舍五入到最近整数同上
np.mod(x1, x2)逐元素取模(余数)x1: 被除数;x2: 除数
np.maximum(x1, x2)逐元素比较两个数组,返回较大值x1, x2: 输入数组
np.minimum(x1, x2)逐元素比较两个数组,返回较小值同上
np.clip(x, a_min, a_max)将数组元素限制在 [a_min, a_max] 范围内x: 输入数组;a_min, a_max: 限制范围
np.isnan(x)逐元素判断是否为NaNx: 输入数组
np.isinf(x)逐元素判断是否为无穷大同上
np.isfinite(x)逐元素判断是否为有限值同上
np.logical_and(x1, x2)逐元素逻辑与操作x1, x2: 布尔数组
np.logical_or(x1, x2)逐元素逻辑或操作同上
np.logical_not(x)逐元素逻辑非操作x: 布尔数组
np.greater(x1, x2)逐元素判断 x1 > x2x1, x2: 输入数组
np.less(x1, x2)逐元素判断 x1 < x2同上
np.equal(x1, x2)逐元素判断 x1 == x2同上

3.4 线性代数

函数名描述参数
numpy.dot(a, b)计算两个数组的点积(内积)。a: 第一个数组;b: 第二个数组。
numpy.vdot(a, b)计算两个向量的点积(支持复数)。a: 第一个向量;b: 第二个向量。
numpy.inner(a, b)计算两个数组的内积。a: 第一个数组;b: 第二个数组。
numpy.outer(a, b)计算两个向量的外积。a: 第一个向量;b: 第二个向量。
numpy.matmul(a, b)计算两个数组的矩阵乘积。a: 第一个数组;b: 第二个数组。
numpy.linalg.det(a)计算矩阵的行列式。a: 输入矩阵。
numpy.linalg.inv(a)计算矩阵的逆矩阵。a: 输入矩阵。
numpy.linalg.pinv(a)计算矩阵的伪逆矩阵。a: 输入矩阵。
numpy.linalg.eig(a)计算方阵的特征值和特征向量。a: 输入方阵。
numpy.linalg.eigh(a)计算对称或厄米特矩阵的特征值和特征向量。a: 输入对称或厄米特矩阵。
numpy.linalg.svd(a)计算矩阵的奇异值分解。a: 输入矩阵。
numpy.linalg.qr(a)计算矩阵的QR分解。a: 输入矩阵。
numpy.linalg.cholesky(a)计算矩阵的Cholesky分解。a: 输入正定矩阵。
numpy.linalg.norm(x)计算向量或矩阵的范数。x: 输入向量或矩阵;ord: 范数类型(默认为2范数)。
numpy.linalg.cond(x)计算矩阵的条件数。x: 输入矩阵;p: 范数类型(默认为2范数)。
numpy.linalg.solve(a, b)求解线性方程组 ax = ba: 系数矩阵;b: 常数向量或矩阵。
numpy.linalg.lstsq(a, b)求解线性最小二乘问题。a: 系数矩阵;b: 常数向量或矩阵;rcond: 奇异值截断阈值。
numpy.linalg.matrix_rank(a)计算矩阵的秩。a: 输入矩阵;tol: 奇异值截断阈值。
numpy.linalg.trace(a)计算矩阵的迹(对角线元素之和)。a: 输入矩阵。
numpy.linalg.matrix_power(a, n)计算矩阵的幂次。a: 输入矩阵;n: 幂次。

3.5 统计学方法

方法描述示例
np.sum()计算数组元素的和np.sum(arr)
np.mean()计算数组元素的平均值np.mean(arr)
np.average()计算数组元素的加权平均值np.average(arr, weights=weights)
np.median()计算数组元素的中位数np.median(arr)
np.std()计算数组元素的标准差np.std(arr)
np.var()计算数组元素的方差np.var(arr)
np.min()找出数组中的最小值np.min(arr)
np.max()找出数组中的最大值np.max(arr)
np.argmin()找出数组中最小值的索引np.argmin(arr)
np.argmax()找出数组中最大值的索引np.argmax(arr)
np.percentile()计算数组元素的百分位数np.percentile(arr, 50)
np.quantile()计算数组元素的分位数np.quantile(arr, 0.5)
np.cumsum()计算数组元素的累积和np.cumsum(arr)
np.cumprod()计算数组元素的累积积np.cumprod(arr)
np.prod()计算数组元素的乘积np.prod(arr)
np.corrcoef()计算数组的相关系数矩阵np.corrcoef(arr1, arr2)
np.cov()计算数组的协方差矩阵np.cov(arr1, arr2)
np.histogram()计算数组的直方图np.histogram(arr, bins=10)
内容概要:本文档详细介绍了基于SABO-SVR减法平均算法(SABO)优化支持向量机回归的数据多输入单输出回归预测项目。项目旨在通过引入SABO算法优化SVR模型,提高其预测精度和计算效率,解决传统SVR在处理复杂非线性关系和高维数据时的局限性。文档涵盖了项目背景、目标与意义、挑战及解决方案、特点与创新、应用领域、效果预测图及程序设计、模型架构、代码示例、注意事项、未来改进方向等内容。项目通过优化计算效率、增强非线性建模能力、自动化优化过程等创新点,为多个领域提供了高效的回归预测解决方案。 适合人群:具备一定机器学习基础,尤其是对支持向量机回归(SVR)和优化算法感兴趣的工程师、研究人员及数据科学家。 使用场景及目标:①优化SVR模型,提高其在复杂数据集上的预测精度和计算效率;②解决多输入单输出回归问题,如金融、能源、制造业、医疗健康、环境监测等领域的大规模数据分析;③通过引入SABO算法,避免局部最优解,实现全局优化;④提供自动化优化过程,减少人工调参工作量。 其他说明:项目不仅实现了SABO-SVR模型的构建与优化,还提供了详细的代码示例和GUI设计,帮助用户更好地理解和应用该技术。此外,文档还探讨了模型的可扩展性、实时预测优化、跨平台支持等未来改进方向,确保项目在实际应用中的高效性和前瞻性。
内容概要:本文详细探讨了会员体系的构建及其核心模块,包括用户行为、用户等级、用户积分、用户标签、付费会员和等级权益。会员体系的核心在于通过精细化管理用户行为和数据,最大化商业价值。文章通过实例展示了会员体系如何帮助企业提升用户活跃度、忠诚度和商业价值。例如,WPS和美图秀秀通过引入会员体系实现了商业化转型,海底捞通过用户等级和积分制度增强了用户粘性。用户标签和CDP平台的应用则进一步提升了精准营销的效果。付费会员体系不仅增加了收入来源,还通过提供专属服务提高了用户忠诚度。最后,文章强调了等级权益的设计不应忽视普通用户的贡献。 适合人群:具备一定互联网产品运营基础,从事产品经理、运营经理、市场营销等相关工作的人员。 使用场景及目标:①帮助产品团队构建和完善会员体系,提升用户活跃度和忠诚度;②通过会员体系实现精准营销,提高用户转化率和ROI;③为企业提供会员体系设计和运营的具体思路和方法论。 其他说明:本文提供了大量实际案例和数据,帮助读者深入理解会员体系的构建逻辑和实际应用效果。文中还涉及了会员体系中各个模块之间的关联和互动,如用户等级与积分的关系、付费会员与等级会员权益的区隔等。建议读者在实践中结合自身产品特点灵活应用文中提到的理论和方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值