python数据分析 -- numpy库初识

本文介绍了Python数据分析库Numpy的使用,包括导入库、创建数组、数组大小、元素类型、函数创建数组以及存取和绘图方法。重点讲解了Array、reshape、astype、arange、linspace、logspace等函数的用法,展示了如何进行数组的切片、整数和布尔数组的存取,以及二维数组的操作。此外,还通过实例展示了绘制各种函数图形的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标签(空格分隔): 王小草机器学习笔记


python的强大之处不但因为简洁易学高效,还在于她有许多库,可以方便我们得到想要的计算。比如今天讲的numpy库,为python提供了快速的多维数组的处理能力。有人数,numpy库的出现使得python可以像matlab一样去计算了。(matlab是10年前乃至今日仍然大受青睐的草稿本式的编程语言)。

1. 导入Numpy库

要调用numpy库,我们就要导入这个库,导入的语句就一句。
as 后面是重命名,也可以说是缩写,在我们的程序中,我们只要写np,自动就代码numpy。这是约定俗称的一个简称,当其他人阅读你的代码的时候,他们也知道np代表的就是Numpy,所以缩写最好不要自己创新。

import numpy as np

2. 使用Aarry创建数组

2.1 通过Array传递List

标准Python的列表(list)中,元素本质是对象。
如:L = [1, 2, 3],需要3个指针和三个整数对象,对于数值运算比较浪费内存和CPU。
因此,Numpy提供了ndarray(N-dimensional array object)对象:存储单一数据类型的多维数组。

创建一维数组:
L = [1, 2, 3, 4, 5, 6]
print L
a = np.array(L)
print a

打印结果:

[1, 2, 3, 4, 5, 6]
[1 2 3 4 5 6]
创建多维数组:

嵌套多个list

b = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print b

打印结果:

[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]

2.2 数组大小

查看数组大小
print a.shape
print b.shape

打印结果:
a是6行1列,b是3行4列

(6L,)
(3L, 4L)
强制修改数组大小

1.将3*4的数组改成4*3的数组

b.shape = 4, 3
print b

打印结果:
从(3,4)改为(4,3)并不是对数组进行转置,而只是改变每个轴的大小,数组元素在内存中的位置并没有改变,还是按照1,2,3,4,5…12这样的顺序来排列的。

[[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]]

2.当某个轴为-1时,将根据数组元素的个数自动计算此轴的长度

b.shape = 2, -1
print b

打印结果:
行是2行,列为-1的话就表示根据行来定,所以是6列

[[ 1  2  3  4  5  6]
 [ 7  8  9 10 11 12]]
修改数组大小后成新数组

使用reshape方法,可以创建改变了尺寸的新数组,原数组的shape保持不变

c = b.reshape((4, -1))
print c

创建的新数组,仍然与老数组共享内存,修改任意一个将影响另外一个。
比如修改b数组的第1行第2列的元素为20,再来看b和c两个数组的变化

2.3 获取数组的元素类型

查看数据类型
print a.dtype
print b.dtype
创建指定元素类型的数组

可以通过dtype参数在创建时指定元素类型

d = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], dtype=np.float)
f = np.array([[1+4j, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], dtype=np.complex)
print d
print f

打印结果:分别是浮点型与复数型

[[  1.   2.   3.   4.]
 [  5.   6.   7.   8.]
 [  9.  10.  11.  12.]]

[[  1.+4.j   2.+0.j   3.+0.j   4.+0.j]
 [  5.+0.j   6.+0.j   7.+0.j   8.+0.j]
 [  9.+0.j  10.+0.j  11.+0.j  12.+0.j]]
更改元素类型

如果更改元素类型,可以使用astype安全的转换

f = d.astype(np.int)
print f

打印结果:

[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]

3. 使用函数创建

3.1 arrage

如果生成一定规则的数据,可以使用NumPy提供的专门函数
arange函数类似于python的range函数:指定起始值、终止值和步长来创建数组
和Python的range类似,arange同样不包括终值;但arange可以生成浮点类型,而range只能是整数类型

生成1开始,10结束(不包含10),步长为0.5的一个数组

a = np.arange(1, 10, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值