numpy 通用函数

数组形状:.T/.reshape()/.resize()

.T

转置,一维数组转置后结果不变,二维数组的行列交换(2,5) → (5,2)

import numpy

ar = numpy.zeros((5,2))
print(ar)
print(ar.T)

.reshape()

# 原数组的行列和改变后的行列要保持一致,例如(0,10) = (5,2)
ar2 = numpy.arange(0,10)
print(ar2) 
print(ar2.reshape(5,2)) # 用法1:直接将已有数组改变形状

# 用法2:生成数组后直接改变形状
print(numpy.zeros((5,6)).reshape(10,3)) 

# 用法3:参数内添加数组,然后修改目标形状
print(numpy.reshape(numpy.arange(0,16),(2,8))) 

.resize()

# 用法一:返回具有指定形状的新数组,如元素不够则重复填充所需数量的元素
print(numpy.resize(numpy.arange(5),(3,4)))
# 如果元素超出所需元素,则按所需元素为准
print(numpy.resize(numpy.arange(15),(3,4)))

ar = numpy.arange(0,10)
# 用法二:虽然输出 None,但是直接修改了数组本身
print(ar.resize(2,5))
print(ar)

注意:.T/.reshape()/.resize()都是生成新的数组

copy():数组的复制

# 赋值逻辑:指向内存中生成的一个值 → 
# 这里ar1和ar2指向同一个值,所以ar1改变,ar2一起改变
import numpy
ar1 = numpy.arange(0,10)
ar2 = ar1
print(ar2)
ar1[1] = 10
print(ar2)

# copy():生成数组及其数据的完整拷贝,不受前数组影响
ar3 = ar1.copy() 
ar1[1] = 20
print(ar2)
print(ar3)

.astype():数组类型转换

import numpy
ar1 = numpy.arange(0,10,dtype = float)
ar2 = ar1.astype(numpy.int64) # 默认numpy.int为int32
print(ar1,ar1.dtype)
print(ar2,ar2.dtype)
# 注意:养成好习惯,数组类型用numpy.int32,而不是直接int32

数组堆叠(参数使用元祖)

hstack():横向连接,vstack():垂直连接
stack(array,axis):任意连接

import numpy
ar1 = numpy.arange(0,5)
ar2 = numpy.arange(5,10)
print(numpy.hstack((ar1,ar2))) # 横向连接

ar3 = numpy.array([[1],[2],[3]])
ar4 = numpy.array([["a"],["b"]])
print(numpy.vstack((ar3,ar4))) # 竖向连接

# 重点解释axis参数的意思,假设两个数组[1 2 3]和[4 5 6],shape均为(3,0)
# axis=0:[[1 2 3] [4 5 6]],shape为(2,3)
# axis=1:[[1 4] [2 5] [3 6]],shape为(3,2)
ar5 = numpy.arange(1,4)
ar6 = numpy.arange(4,7)
print(numpy.stack((ar5,ar6),axis = 0))

数组拆分

hsplit():横向拆分,vsplit():垂直拆分

import numpy
ar = numpy.arange(0,16).reshape(4,4)
print(ar)
# 将数组水平(逐列)拆分为多个子数组 → 按列拆分
print(numpy.hsplit(ar,2))
# 将数组垂直(逐行)拆分为多个子数组 → 按行拆分
print(numpy.vsplit(ar,4))
# 输出结果为列表,列表中元素为数组

数组简单运算

import numpy
ar = numpy.arange(6).reshape(2,3)
print(ar)
print(ar + 10)   # 加法
print(ar * 2)   # 乘法
print(1 / (ar+1))  # 除法
print(ar ** 2)  # 幂

# 与标量的运算
print(ar.mean())  # 求平均值
print(ar.max())  # 求最大值
print(ar.min())  # 求最小值
print(ar.std())  # 求标准差
print(ar.var())  # 求方差
# 求和,numpy.sum() → axis = 0:按列求和,axis = 1:按行求和
print(ar.sum(), numpy.sum(ar,axis = 0))  
print(numpy.sort(numpy.array([1,4,3,2,5,6])))  # 排序
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值