Python笔记----NumPy数组

import numpy as np

'''
NumPy重塑
数组重塑就是更改数组的形状,NumPy中用reshape方法来实现数组重塑
'''


# 一维数组重塑:
# 将数组从一行或一列重塑为多行多列的数组

# 新建一个一维数组
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8])
# print(arr)

# 将一维数组重塑为3行3列的多维数组
arr_reshape = np.reshape(arr, (3, 3))
# print(arr_reshape)

# 多维数组重塑
# 新建一个多维数组
arr2 = np.random.randint(10, size=(3, 4))
# print(arr2)
arr2_reshape = arr2.reshape(4, 3)
# print(arr2_reshape)

'''
数组的转置
转置用到的方法是.T
'''
arr3 = np.random.randint(10, size=(3, 3))
# print(arr3)
# print(arr3.T)
# print(arr2_reshape)
# print(arr2_reshape.T)

'''
NumPy数组合并
'''

# 横向合并
# 横向合并就是将两个行数相等的数组在行方向上进行简单的拼接,NumPy合并不需要公共列(与DataFrame不同),只是将两个数组简单的拼接在一起
# 有concatenate, hstack, column_stack三种方法实现
#
# 这里使用arr_reshape和arr3数组
#
# concatenate方法
# 该方法将两个待合并的数组以列表的形式传给concatenate,并通过设置axis参数来指明在行方向还是在列方向上
# axis=1代表在行方向上合并,axis=0代表在列方向上合并

# print(arr_reshape)
# print(arr3)
# print(np.concatenate([arr_reshape, arr3], axis=0))

# hstack方法
# 将两个待合并数组以元组的形式传给hstack即可,不需要设置axis参数

# print(arr_reshape)
# print(arr3)
# print(np.hstack((arr_reshape, arr3)))

# column_stack方法
# 将两个待合并数组以元组的形式传给column_stack即可,不需要设置axis参数
# print(arr_reshape)
# print(arr3)
# print(np.column_stack((arr_reshape, arr3)))


# 纵向合并
# 纵向合并将两个列数相等的数组在列方向上进行合并
# 使用concatenate,vstack,row_stack三个方法实现
# 由于与横向合并类似,不再赘述

'''
常用数据分析函数
'''

# 元素级函数
# 元素级函数就是针对数组中每个元素执行相同的函数操作
# 主要函数有sbs,sqrt,square(平方),exp,log(以e为底),log10,log2,log1p(以log(1+x)为底),modf(适用于浮点数,将小数和整数以独立的数组返回),isnan

# 描述统计函数
# 描述统计函数是对整个NumPy数组或某条轴的数据进行统计运算
# 主要函数有sum, mean(求平均值),std(求标准差),var(求方差),min,max,argmin(最小值对应索引),argmax,cumsum(所有元素和,以数组形式返回),cumprod(所有元素积)

arr4 = np.random.randint(10, size=(3, 4))
# 以arr4为例

# print(arr4)

# 求和
# print(arr4.sum())
# print(arr4.sum(axis=1))
# print(arr4.sum(axis=0))

# 求平均值
# print(arr4.mean())
# print(arr4.mean(axis=1))
# print(arr4.mean(axis=0))

# 求最值
# print(arr4.max())
# print(arr4.max(axis=1))
# print(arr4.min(axis=0))


'''
条件函数
NumPy数组中的条件函数用np.where(dondition,x,y)表示
如果条件为真返回x;条件为假返回y
'''

# 创建一个学生成绩数组
score = np.random.randint(101, size=5)
# print(score)
# print(np.where(score > 60, "及格", "不及格"))
# 返回满足条件的对应位置
# print(np.where(score > 60))


'''
集合关系
包含inld(),交集intersectld(),并集unionld(),差集setdiffld()
'''

arr5 = np.random.randint(10, size=9)
print(arr)
print(arr5)

# 包含
# 判断arr中包含arr5中的哪些值
# 如果包含则在对应位置返回True,否则返回False

# print(np.in1d(arr, arr5))

# 交集
# 返回两个数组中的公共部分
# print(np.intersect1d(arr, arr5))

# 并集
# 返回两个数组中含有所有数据元素的一个集合
# print(np.union1d(arr, arr5))

# 差集
# 返回arr中存在的,而arr5中不存在的元素
# print(np.setdiff1d(arr, arr5))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值