面试复习系列【python-数据处理-1 】

简介: 面试复习系列【python-数据处理-1 】

numpy

我个人的理解是,在处理一些大量数据,多维数据的时候使用。


  • 比如我们创建一个数组,很好写
l = [1,2,3,4,5]


  • 创建一个二维数组,也很好写
l = [[1,2,3],[4,5,6]]


所以有的同学就说了:我用传统的写法一样可以实现,为什么还要浪费精力去学习numpy呢?


那么我问个问题,说一个二维数组,给每个元素都自加1 怎么写?


聪明的同学一定秒写算法:

l = [[1,2,3],[4,5,6]]
new = [ [j+1 for j in i] for i in l ]
print(new)


结果如下:

[[2, 3, 4], [5, 6, 7]]


虽然看起来简单,但是仍然比较绕,我运用了内嵌列表推导式的写法。

但是numpy却可以很人性化的简单实现出来:


import numpy
l = [[1,2,3],[4,5,6]]
l = numpy.array(l)
l +=1
print(l)


看到了吧,给这个二维数组自加1就可以让所有元素加1,很神奇吧?结果如下:

image.png

可以看到,它还贴心的给换行展示,这个二维数组。或者说此时的l已经不算一个二维数组了,而是一个专门的数据存放格式,一个更好控制和使用的格式:

<class 'numpy.ndarray'>


可以看出是Numpy的专用格式之一。


那么numpy还有什么功能呢?大家有了兴趣之后就可以来死记硬背了,起码先混个脸熟吧~

numpy:import numpy as np


创建指定大小的二维数组,值随机

a = np.empty([3,4],dtype=int)


创建指定大小的二维数组,值全为1,且指定类型

a = np.ones([3,4],dtype=int)


创建n维数组对象

a = np.array([[1,2,3],[4,5,6]])


从已有元组或数组中创建

a = np.asarray([(1,2,3),(4,5,6)])


从数值范围创建列表数组

a = np.arange(start=1,stop=5,step=2)


创建随机元素数组,行/列

a = np.random.random([2,3])


等差数组

a = np.linspace(start=0,stop=20,num=5)


等幂数组 base的1-10次方范围,4个数实现

a = np.logspace(start=1,stop=10,num=4,endpoint=True,base=2)


打印结构

print a.shape


输出元素数据类型

print a.dtype


输出元素秩

print a.ndim


输出元素总个数

print a.size


元素类型转换

a.astype(float)


只要前2行

print a[0:2]


只要第3列

print a[:,2]


只要第2行第3个元素

print a[1,2]


元素全部自加1

a+=1


元素全部判断是否等于5

print a==5


按列求和

print a.sum(axis=0)


按行求和

print a.sum(axis=1)


俩个矩阵同位置元素相乘

print a*b


矩阵扩展,行扩大2倍,列扩大3倍

print np.tile(a,(2,3))


获取每列最大值的行数

print a.argmax(axis=0)


获取每行最大值的列数

print a.argmax(axis=1)


输出每列最大值

print a[a.argmax(axis=0),range(a.shape[1])]


输出每行最大值

print a[range(a.shape[0]),a.argmax(axis=1)]


每行都从小到大排序

np.sort(a,axis=1)


每列都从小到大排序

np.sort(a,axis=0)


存储和取出

np.save('ttt',a) b = np.load('ttt.npy')


存储取出其他格式

np.savetxt('ttt.txt',a) b = np.loadtxt('ttt.txt')

相关文章
|
21天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
51 0
|
1月前
|
数据采集 存储 数据处理
Python爬虫-数据处理与存储(一)
Python爬虫-数据处理与存储(一)
|
30天前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
21天前
|
存储 数据处理 Python
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第27天】在科学计算和数据分析领域,Python凭借简洁的语法和强大的库支持广受欢迎。NumPy和SciPy作为Python科学计算的两大基石,提供了高效的数据处理和分析工具。NumPy的核心功能是N维数组对象(ndarray),支持高效的大型数据集操作;SciPy则在此基础上提供了线性代数、信号处理、优化和统计分析等多种科学计算工具。结合使用NumPy和SciPy,可以显著提升数据处理和分析的效率,使Python成为科学计算和数据分析的首选语言。
29 3
|
22天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
31 2
|
22天前
|
存储 机器学习/深度学习 算法
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第26天】NumPy和SciPy是Python科学计算领域的两大核心库。NumPy提供高效的多维数组对象和丰富的数学函数,而SciPy则在此基础上提供了更多高级的科学计算功能,如数值积分、优化和统计等。两者结合使Python在科学计算中具有极高的效率和广泛的应用。
39 2
|
30天前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
13天前
|
分布式计算 并行计算 大数据
Python编程中的高效数据处理技巧
Python编程中的高效数据处理技巧
31 0
|
1月前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据处理与可视化——以气温数据分析为例
【10月更文挑战第12天】使用Python进行数据处理与可视化——以气温数据分析为例
206 0
|
1月前
|
Java C++ Python
【面试宝典】深入Python高级:直戳痛点的题目演示(下)
【面试宝典】深入Python高级:直戳痛点的题目演示(下)