python numpy基础

这篇博客介绍了Python Numpy库的基础知识,包括基本类型、类型转化、矩阵求和、数组与矩阵操作、特殊矩阵创建、矩阵运算、矩阵变形、矩阵拼接、切分及复制,以及排序方法如argsort、sort和sorted。

基本类型

import numpy
#向量
vector=numpy.array([5,10,15,20])
vector==10
#矩阵
matrix=numpy.array([[5,10,15],[20,25,30],[35,40,45]])
matrix==25

类型转化

astype函数
dtype函数

vector1=numpy.array(["1","2","3"])
print(vector1.dtype)
print (vector1)
#字符转为float
vecotor1=vector1.astype(float)
print (vecotor1.dtype)
print (vecotor1)

矩阵求和

matrix=numpy.array([[5,10,15],
                    [20,25,30],
                    [35,40,45]])
print(matrix.sum(axis=1))#按行求和
print(matrix.sum(axis=0))#按列求和

数组与矩阵

arange函数
reshape函数

import numpy as np
print(np.arange(15))
a=np.arange(15).reshape(3,5)

#shape 函数返回矩阵的大小
a.shape#(3,5)
#ndim 函数返回矩阵的维度
a.ndim#2

a.size#多少个元素
a.dtype.name#类型

特殊矩阵

np.zeros((3,4))#构造全0矩阵
np.ones((2,3,4),dtype=np.int32)#全1矩阵,int 默认float

np.arange(10,30,5)#10,15,20,25(初始值,结束值,间隔)
np.random.random(2,3)#随机生成矩阵,用于初始化

from numpy import pi
np.linspace(0,2*pi,100)#(初始值,间隔,个数)

矩阵运算

#矩阵相乘
A=np.array([[1,1],[0,1]])
B=np.array([[2,0],[3,4]])
print(A*B)
print(A.dot(B))
print(np.dot(A,B))
#矩阵求逆
#需要先转化为矩阵
A=mat(A)
A.I

矩阵变形

import numpy as np
a=np.floor(10*np.random.random((3,4)))
a.ravel()#矩阵变成向量
a.reshape(6,2)#向量改变维度,array用reshape
a.T#转置

矩阵拼接与切分

a=np.floor(10*np.random.random((2,2)))
b=np.floor(10*np.random.random((2,2)))
np.vstack((a,b))#向下拼接
np.hstack((a,b))#向右拼接
#

#切分
a=np.floor(10*np.random.random((2,12)))
np.vsplit(a,2)
np.hsplit(a,3)#行方向平均切分
np.hsplit(a,(3,4))#指定3和4列后面切分
#

矩阵复制

a=np.arrange(12)
b=a
b is a#只是名字不同,换了一个名字 
b.shape=(3,4)
a.shape
#

#赋值操作,相同改变
c=a.view()
c is a 
c.shape=2,6
c[0,4]=1234
a.shape
a
#

#复制操作,不同改变
d=a.copy()
d is a 
d[0,0]=999
a
#

#只用copy才是真正意义上的复制

tile整体复制

#tile复制
a=np.arange(0,40,10)
b=np.tile(a,(4,3))#整体四行三列复制
#

排序

argsort
sort
sorted

#排序,默认为从小到大
a=np.array([[4,3,5],[1,2,1]])
b=np.sort(a,axis=1)
a.sort(axis=1)
a=np.array([4,3,1,2])
j=np.argsort(a)#返回索引
#
### Python Numpy 基础教程入门指南 #### 导入Numpy库并验证安装 为了开始使用 NumPy,首先需要将其导入到工作环境中。可以利用如下代码片段完成这一过程: ```python import numpy as np print(np.__version__) ``` 这段代码不仅会加载 NumPy 库以便后续调用其功能函数,还会打印当前使用的 NumPy 版本号[^1]。 #### 创建数组 NumPy 的核心对象是多维数组 `ndarray`。创建一个简单的 NumPy 数组可以通过多种方式实现: ```python # 使用列表创建一维数组 a = np.array([1, 2, 3]) print(a) # 创建二维数组 b = np.array([[1, 2], [3, 4]]) print(b) ``` 这些例子展示了如何基于现有的 Python 列表结构快速构建新的 NumPy 数组实例[^4]。 #### 查看数组属性 一旦有了数组之后,就可以查询有关该数组的一些基本信息,比如形状(shape),维度(dimension)等: ```python c = np.array([[1, 2, 3], [4, 5, 6]]) # 输出数组的形状 (rows, columns) print(c.shape) # 获取数组的数据类型 print(c.dtype.name) # 访问特定位置上的元素 c[row][column] print(c[0, 1]) ``` 上述命令可以帮助理解所创建数组的具体特征及其内部存储模式。 #### 执行基本运算 除了作为静态数据容器外,NumPy 还支持高效的数值计算操作,例如加法、乘法以及其他更复杂的线性代数变换: ```python d = np.arange(6).reshape((2, 3)) e = d * 2 + 1 f = e.sum(axis=0) print(f"d:\n{d}") print(f"e after multiply by 2 and add 1:\n{e}") print(f"f sum along axis 0:\n{f}") ``` 这里展示了一些常见的算术运算符的应用场景以及沿指定轴求和的方法。 #### 随机数生成 随机抽样也是科学研究中不可或缺的一部分,在这方面 NumPy 提供了一系列便捷实用的功能接口: ```python g = np.random.rand(3, 3) # 从均匀分布中抽取样本填充矩阵 h = np.random.randn(3, 3) # 从标准正态分布中抽取样本填充矩阵 i = np.random.randint(0, 10, size=(2, 2)) # 整型随机整数 print(g) print(h) print(i) ``` 以上代码段分别演示了三种不同类型的伪随机数发生器的工作原理。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值