
加速数据分析,这12种高效Numpy和Pandas函数为你保驾护航
发布日期:2021-05-06 21:43:42
浏览次数:27
分类:精选文章
本文共 2791 字,大约阅读时间需要 9 分钟。
12种 Numpy 和 Pandas 函数,助力数据分析更高效
Numpy 的 6 种高效函数
Numpy 是 Python 环境下的科学计算扩展包,提供强大的 N 维数组操作和矩阵计算功能。以下是 Numpy 中 6 种实用函数,能够显著提升数据分析效率。
argpartition()
x = np.array([12, 10, 12, 0, 6, 8, 9, 1, 16, 4, 6, 0])index_val = np.argpartition(x, -4)[-4:]index_val# array([1, 8, 2, 0], dtype=int64)np.sort(x[index_val])# array([10, 12, 12, 16])
allclose()
array1 = np.array([0.12, 0.17, 0.24, 0.29])array2 = np.array([0.13, 0.19, 0.26, 0.31])np.allclose(array1, array2, 0.1) # Falsenp.allclose(array1, array2, 0.2) # True
clip()
x = np.array([3, 17, 14, 23, 2, 2, 6, 8, 1, 2, 16, 0])np.clip(x, 2, 5)# array([3, 5, 5, 5, 2, 2, 5, 5, 2, 2, 5, 2])
extract()
and
和 or
),适用于筛选特定类型的数据。 array = np.random.randint(20, size=12)array# array([0, 1, 8, 19, 16, 18, 10, 11, 2, 13, 14, 3])cond = np.mod(array, 2) == 1cond# array([False, True, False, True, False, False, False, True, False, True, False, True])np.extract(cond, array)# array([1, 19, 11, 13, 3])np.extract(((array < 3) | (array > 15)), array)# array([0, 1, 19, 16, 18, 2])
where()
where
条件,支持多种比较操作。 y = np.array([1, 5, 6, 8, 1, 7, 3, 6, 9])np.where(y > 5, 'Hit', 'Miss')# array(['Miss', 'Miss', 'Hit', 'Hit', 'Miss', 'Hit', 'Miss', 'Hit', 'Hit'])
percentile()
a = np.array([1, 5, 6, 8, 1, 7, 3, 6, 9])print("50th Percentile of a, axis=0: ", np.percentile(a, 50, axis=0))# 6.0b = np.array([[10, 7, 4], [3, 2, 1]])print("30th Percentile of b, axis=0: ", np.percentile(b, 30, axis=0))# [5.1, 3.5, 1.9]
Pandas 数据统计包的 6 种高效函数
Pandas 是 Python 的一个强大数据分析库,擅长处理结构化数据和时间序列。以下是 6 种实用函数,能够提升数据处理效率。
read_csv(nrows=n)
import ioimport requestsurl = "https://raw.github.com/vincentarelbundock/Rdatasets/master/csv/datasets/AirPassengers.csv"s = requests.get(url).contentdf = pd.read_csv(io.StringIO(s.decode('utf-8')), nrows=10, index_col=0)
map()
frame = pd.DataFrame(np.random.randn(4, 3), columns=list('bde'), index=['India', 'USA', 'China', 'Russia'])changefn = lambda x: f'%.2f' % xframe['d'].map(changefn)
apply()
fn = lambda x: x.max() - x.min()frame.apply(fn)
isin()
filter1 = df["value"].isin([112])filter2 = df["time"].isin([1949.000000])df[filter1 & filter2]
copy()
data = pd.Series(['India', 'Pakistan', 'China', 'Mongolia'])new_data = data.copy()new_data[1] = 'Changed value'print(new_data)print(data)
select_dtypes()
df = pd.read_csv('data.csv')df.select_dtypes(include='float64')
数据分析的高效工具
Pandas 提供了强大的数据操作功能,适用于表格数据、时间序列和多维矩阵等多种数据类型。其灵活的索引操作和聚合功能,使数据处理更加高效和直观。
发表评论
最新留言
不错!
[***.144.177.141]2025年04月05日 18时45分23秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
JDK 内置的多线程协作工具类的使用场景
2019-03-05
Java 中哪些对象可以获取类对象
2019-03-05
linux 的 sleep 命令
2019-03-05
11.2.6 时间值的小数秒
2019-03-05
Redis源码分析(七)--- zipmap压缩图
2019-03-05
自定义Hive Sql Job分析工具
2019-03-05
【MySQL】(九)触发器
2019-03-05
关于Altium Designer 09导出BOM表不能正确分类问题
2019-03-05
Oracle 11G环境配置
2019-03-05
【Python】(十二)IO 文件处理
2019-03-05
【Oozie】(三)Oozie 使用实战教学,带你快速上手!
2019-03-05
师兄面试遇到这条 SQL 数据分析题,差点含泪而归!
2019-03-05
C语言的数值溢出问题(上)
2019-03-05
BottomNavigationView控件item多于3个时文字不显示
2019-03-05
函数指针的典型应用-计算函数的定积分(矩形法思想)
2019-03-05
8051单片机(STC89C52)以定时器中断模式实现两倒计时器异步计时
2019-03-05
用 wxPython 打印你的 App
2019-03-05
vue项目通过vue.config.js配置文件进行proxy反向代理跨域
2019-03-05
Linux下安装MySql过程
2019-03-05
android:使用audiotrack 类播放wav文件
2019-03-05