numpy基本操作

numpy基本操作

具体信息请查看官方文档

数组创建

  1. 直接定义
a = np.array([2,3,4])
  1. 使用arange函数(类似python中的range函数) API: numpy.arange
a = np.arange(12).reshape((3,4))
  1. 当步长为浮点数的时候,常常使用linespace函数:给定start , end以及num直接指定元素数量。
  2. 函数zeros 创建一个由0组成的数组,函数ones创建一个完整的数组,函数empty 创建一个数组,其初始内容是随机的,取决于内存的状态。
  3. 随机生成矩阵:a = np.random.random((2,4)): 随机生成2*4的矩阵

基础运算

  1. 算术运算符(+,-,* ,**,sin等)会应用到 元素 级。
    特别注意平方的表示方法 eg. c = b**2
>>> a = np.array( [20,30,40,50] )
>>> b = np.arange( 4 )
>>> b
array([0, 1, 2, 3])
>>> c = a-b
>>> c
array([20, 29, 38, 47])
>>> b**2
array([0, 1, 4, 9])
>>> 10*np.sin(a)
array([ 9.12945251, -9.88031624,  7.4511316 , -2.62374854])
>>> a<35
array([ True, True, False, False]

  1. 对于数组,print(array<3)可以判断哪些元素小于3. 小于三的元素用True占位,其他的用false占位。
  2. 对于a,b两个矩阵点乘a.dot(b)或者a@b
  3. 求矩阵a中所有元素的和np.sum(a), 最大值np,min(a), 最小值np.max(a)
  4. 计算最小值或者最大值的索引np.argmin(a), npargmax(a)。 计算所有元素的平均值a.mean()
  5. 转置a.T 或者np.transpose(a)
  6. np. clip(a,5,9) 所有大于9的数换成9,小于5的换成5
  7. axis参数指定运算维度,axis=1 以列为单位运算,axis=0以行为单位运算。

索引与切片

  1. 对二维数组
    A[2] 代表索引为2的一整行
    A[2][1] 坐标为(2,1)的元素
    A[:6:2] = -1000 equivalent to a[0:6:2] = -1000; from start to position 6, exclusive, set every 2nd element to -1000
    A[ : :-1] 逆序
    A[ : ,1] 第一列
  2. 迭代所有行,转置后可以迭代所有列
for row in A:
    print(row)
  1. 迭代所有元素:
for item in A.flat
	print(item)

A.flatten() 把二维数组转化为一维数组

array叠加与分割

  1. vertical stack: np.vstack(A, B)
    horizontal stack: np.hstack(A, B)
    把一行转化成一列无法使用转置,使用newaxis添加新维度
  2. hsplit() 以及vsplit()

浅拷贝&深拷贝

  1. 变量本质为reference。
  2. deep copy使用copy函数:b=a.copy()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值