numpy

数组的创建

n1 = np.array([[1,2,3,4],[2,3,4,5],[3,4,5,6]])
#这样生成的数组在pycharm中没有提示,需要在后面添加 #type:np.ndarray
n2 = np.arange(0,12).reshape(3,4)#type:np.ndarray
a = np.zeros((3,4))
b = np.ones((3,4))
c = np.empty((3,4))#随机数组
d = np.eye(3,3)#对角线数组
e = np.random.randn(3,4)#正态分布
f = np.random.normal(2,5,(3,4))#自定义正态分布

数组的属性

print(n2.ndim)#数组的维度
print(n2.shape)#数组的形状
print(n2.size)#数组的大小
print(n2.dtype)#数组的数据类型
print(n2.itemsize)#ndarray 对象中每个元素的大小,以字节为单位

数组的切片和索引

注意重点:数组的索引会降维,但是切片不会降维

n1 = np.arange(0,12).reshape(3,4)
print(n1)
print(n1[1,2])#降维 6
print(n1[1][2])#降维 6
print(n1[[1,2,0],[1,2,0]])#花式索引:可以将前后的数值组成为坐标 [ 5 10  0]

print(n1[1:2,0:2])#[[4 5]] 这里的逗号可以理解为降维
print(n1[1:2][0:2])#[[4 5 6 7]]
x = np.array([[  0,  1,  2],[  3,  4,  5],[  6,  7,  8],[  9,  10,  11]])
print (x)
print ('\n')
print  ('大于 5 的元素是:')
print (x[x >  5])

广播

广播应满足以下条件:

  当数组维度不同,一个维度长度为0时

  当数组维度不同且某一维度不为0时,这个维度的长度必须为1

a = np.array([[[ 0, 0, 0],
           [10,10,10],
           [20,20,20],
           [30,30,30]],
            [[0, 0, 0],
            [10, 10, 10],
            [20, 20, 20],
            [30, 30, 30]]
              ])
b = np.array([[0,0,0]])
print(a.shape)
print(b.shape)
print(a+b)

数组的操作

n2 = np.arange(0,12).reshape(3,4)#type:np.ndarray #修改数组的形状
print (n2.ravel())#展开数组
print (n2)

#转置
a = np.arange(12).reshape(3, 4)
print(a)
print(np.transpose(a))
print(a)
print(a.T)

#换轴
a = np.arange(8).reshape(2, 2, 2)
print(a)
print(np.swapaxes(a, 2, 0))

#降维
x = np.arange(9).reshape(1, 3, 3)
print(x)
y = np.squeeze(x)
print(y)
print(x.shape, y.shape)

#连接数组 h 水平 v 垂直 split 分割
a = np.array([[1, 2], [3, 4]])
print(a)
b = np.array([[5, 6], [7, 8]])
print(b)
print(np.stack((a, b), 0))
print(np.stack((a, b), 1))

a.resize(1,20)    #返回指定形状的新数组 重复出现数组中的元素
print(a)

算术函数

#add() subtract() multiply() divide()
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
print(np.add(a,b))
print(np.subtract(a,b))
print(np.multiply(a,b))
print(np.divide(a,b))
#幂函数
print(np.power(a,2))

统计函数

#方差
print(np.var(a))
#标准差
print(np.std(a))
#加权平均
print(np.average(a))
#算数平均
print(np.mean(a))
#中值
print(np.median(a))
#最大值最小值
print(np.amin(a))
print(np.amax(a))
#最大值最小值差
print(np.ptp(a))
#百分比 第 p 个百分位数是这样一个值,它使得至少有 p% 的数据项小于或等于这个值,且至少有 (100-p)% 的数据项大于或等于这个值。
print (np.percentile(a, 30))

排序筛选

筛选返回索引

print(np.sort(a))
print(np.argmax(a))
print(np.argmin(a))
print(np.nonzero(a))
b = np.where(a >  3)
print(b)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值