NumPy基础学习笔记--使用方法及代码示例

本文是基于《利用Python进行数据分析》的学习笔记,重点介绍NumPy的N-维数组对象ndarray,包括数组的生成、形状属性、数据类型以及基本操作。适合数据分析和机器学习初学者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习《利用Python进行数据分析》第2版,一些笔记将在后续更新

内容部分引用于《利用Python进行数据分析》第2版(Wes McKinney著,徐敬一译)、慕课网上的课程内容笔记以及我个人总结笔记,仅供大家一起学习交流

数组与向量化计算

numpy的核心特征之一就是N-维数组对象——ndarray

导入numpy

import numpy as np

生成随机数

print(np.random.rand(2, 4))  # 输出2行4列的随机数组
print(np.random.rand())  # 生成一个随机数
print(np.random.randint(1, 14, 5))  # 在1到14之间生成5个随机数
print(np.random.randn(2,4))#标准正态分布随机数
print(np.random.choice([10,20,30]))#从中选择随机数
print(np.random.beta(1,10,100))#从1到10随机生成100个beta分布

每一个数组都有shape属性,用来表征数组每一维度的数量

lst=[[1,3,5],[2,4,6]]
np_lst=np.array(lst)#生成ndarray
print(np_lst.shape)

每一个数组都有一个dtype属性,用来描述数组的数据类型

print(np_lst.dtype)

除了np.array,还有其他函数创建新数组

print(np.zeros([2, 4]))  # 输出元素都为0的2行4列数组
print(np.ones([3, 5]))  # 输出元素都为1 的2行4列数组

数组相关操作示例

print(np.arange(1,11))#从1开始,不包括11,等差
print(np.arange(1, 11).reshape([2,5]))#2行5列
list = (np.arange(1, 11)).reshape([2, 5])  # 变成两行五列数组
print(np.exp(list))  # list 的自然指数
print(np.exp2(list))  # list 的自然指数的平方
print(np.sqrt(list))  # list 的开方
print(np.square(list))  # list 的平方
print(np.sin(list))  # list 的正弦值
print(np.log(list))  # list 的对数值
#引用网上学习笔记,侵删
list = np.array([[[1, 2, 3, 4],
                          [4, 5, 6, 7, ]],
                        [[7, 8, 9, 10],
                        [11, 12, 13, 14]],
                        [[15, 16, 17, 18],
                        [19, 20, 21, 22]]
                         ])
#axis取值跟维数有关,维数从 0 开始算起,axis值越大,深入的程度越深
print (list.sum(axis=0))# axis表示维度,sxis=0,表示最外层的元素相加
print (list.sum(axis=1))# 表示最外层减一层的元素相加
print (list.max(axis=0)) # 最外层元素中的最大元素值
print (list.min(axis=0)) # 最外层元素中的最小元素值
list1 = np.array([10, 20, 30, 40])
list2 = np.array([4, 3, 2, 1])
print(list1 + list2) # 对两个list中的元素相加,ps:不是将一个数组中的元素放在另一个后面
print (list1-list2) # 对两个list中的元素相减
print (list1**2) # 对两个list中的元素平方
print (list1/list2)# 对两个list中的元素相除
print (list1.reshape([2, 2]))
print (list2.reshape([2, 2]))
print (np.dot(list1.reshape([2, 2]), list2.reshape([2, 2]))) # 数组点乘
print(np.concatenate((list1,list2),axis = 0)) #将两个数组相连,即list2添加到list1中,传的是tup元组
print(np.vstack((list1,list2)))# Vertical 垂直,即纵向连接
print(np.hstack((list1,list2)))#Horizontal 水平,即横向连接
print(np.split(list1,4))#分割成4段
print(np.eye(3))#线性矩阵,单位矩阵
lst = np.array([[1, 2],
                [3, 4]])
print("Inv:")
print(inv(lst))  # 矩阵的逆
print("T:")
print(lst.transpose())  # 转置矩阵
print("Det:")
print(det(lst))  # 行列式
print(eig(lst))  # 特征值和特征向量,一个元组,两个array
y = np.array([[5], [7]])
print("Solve")
print(solve(lst, y))  # 解方程组 x+2y=5; 3x+4y=7
# numpy的其他操作
print("FFT:")
print(np.fft.fft(np.array([1, 1, 1, 1, 1, 1, 1, 1])))  # 阶跃响应
print('Coef:')
print(np.corrcoef([1, 0, 1], [0, 2, 1]))  # 皮尔逊相关系数计算
print('Poly:')
print(np.poly1d([3, 1, 3]))  # 生成一元多次函数
print(np.corrcoef([1, 0, 1], [0, 2, 0]))  # 打印相关系数
print(np.poly1d([2, 1, 3]))  # 生成一元多次函数 2x**2 + 1x + 3 ,他生成一元二次函数

内容部分引用于《利用Python进行数据分析》第2版(Wes McKinney著,徐敬一译)、慕课网上的课程内容笔记以及我个人总结笔记,仅供大家一起学习交流

如有错误,请多指教,笔记会持续更新的~
谢谢大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值