提示:文章写完后,目录可以自动生成,如何生成可参考
前言
Numpy作为高性能科学计算和数据分析的基础包,是其他重要数据分析工具的基础,掌握numpy的功能和用法,将有助于后续其他数据分析工具的学习。
一、认识Numpy数组对象
Numpy中最重要的一个特点就是其N维数组对象,即ndarray(别名array)对象,该对象具有失量算术能力和复杂的广播能力,可以执行一些科学计算。不同于python标准库,ndarray对象具有对高维数组的处理能力,这也是数值计算中的缺一不可的重要特征。
ndarray对象中定义了一些重要的属性例如:
ndarray.ndim | 维度个数,也就是数组轴的个数比如一维,二维等 |
ndarray.shape | 数组的维度,表示每个维度上数组的大小 |
ndarray.size | 数组元素的总个数,等于shape属性中元组元素的乘积 |
ndarray.dtype | 描述数组中元素类型的对象 |
ndarray,itemsize | 数组中每个元素的字节大小 |
注意:ndarray对象中存储元素的类型必须相同。
1.演示ndarray对象的使用
代码如下(示例):
import numpy as np
# 创建一个3行4列的数组
data=np.arange(12).reshape(3,4)
print(data)
# 查看数组的类型
print(type(data))
# 获取数组的维度个数
print(data.ndim)
# 获取数组的维度,输出结果为(3,4),表示3行4列
print(data.shape)
# 数组元素的个数
print(data.size)
# 数组元素的类型
print(data.dtype)
运行结果如下:
上述示例中 第一行代码使用import.....from 语句导入numpy库,并将其取别名为np,表示后续会用np代替numpy执行操作。
第2行代码使用arange()和reshape()函数,创建了一个3行4列的数组data,其中arange()函数的功能类似于range()函数,只不过arange()函数生成的是一系列数字元素的数组,reshape()函数的功能是重组数组的行数,列数和维度。
第4行代码使用type()函数查看了数组的类型,输出结果为numpy.ndarray.
第5行代码获取了数组的维度个数,返回结果为2,表示二维数组。
第6行代码获取数组的维度,返回结果为(3,4),表示数组有3行4列。
第7行代码获取了数组中元素的总个数,返回结果为12,表示数组中一共有12个元素。
第8行代码获取了元素的具体的类型,返回结果为int32,表示数据类型为int32.
二.创建Numpy数组
创建ndarray对象的方式有若干种,其中最简单的方式就是使用array()函数,在调用该函数时传入一个python现有的类型即可,比如列表,元组。例如,通过array()函数分别创建一个一维数组和二维数组,具体代码如下。
代码如下(示例):
import numpy as np
# 创建一维数组
data1 = np.array([1,2,3])
print(data1,'\n')
# 创建二维数组
data2=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(data2,'\n')
除了使用array()函数创建ndarray对象外,还有其他创建数组的方式,具体分为一下几种
(1) 使用zeros()函数创建元素值都为0的数组,示例代码如下:
# 创建一个3行4列元素值都为0的数组
np.zeros((3,4))
(2)通过调用ones()函数创建元素值都为1的数组,示例代码如下:
# 创建一个3行4列元素值都为1的数组
np.ones((3,4))
(3)通过empty()函数创建一个新的数组,该数组只分配了内存空间,它里面填充的元素都是随机的,且数据类型默认为float64,示例代码如下:
np.empty((3,4))
(4)通过arange()函数可以创建一个等差数组,它的功能类似于range(),只不过arange()函数的返回结果是数组,而不是列表 。
创建一个1到20的数组,步长为5
np.arange(1,20,5)
三.ndarray数据类型
1.查看数据类型
如上文所述,通过nddary.dtype可以创建一个表示数据类型的对象,要想获取数据类型的名称,则需要访问name属性来进行获取,示例代码如下:
data_one=np.array([[1,2,3],[4,5,6]])
print(data_one.dtype.name)
# 运行结果为int32
在默认情况下,64为的windows系统输出的结果为int32,64为Linux系统下输出结果为int64.并且在默认情况下,通过zeros(),ones(),empty()函数创建的数组种数据类型为int64.
数据类型 | 含义 |
bool | 布尔类型,值为True或False |
int8,uint8 | 有符号和无符号的8位整数 |
int16,uint16 | 有符号和无符号的16位整数 |
int32,uint32 | 有符号和无符号的32位整数 |
int64,uint64 | 有符号和无符号的64位整数 |
float16 | 半精度浮点数(16位) |
float32 | 半精度浮点数(32位) |
float64 | 半精度浮点数(64位) |
complex64 | 复数,分别用两个32位浮点数表示实部和虚部 |
complex128 | 复数,分别用两个32位浮点数表示实部和虚部 |
object | python对象 |
string | 固定长度的字符串类型 |
unicode | 固定长度的unicode类型 |
2.转换数据类型
ndarray对象的数据类型可以通过astype()方法进行转换,示例代码如下:
# 使用astype()函数进行数据类型的转换
data_two=np.array([[1,2,3],[4,5,6]])
print(data_two.dtype)
float_data = data_two.astype(np.float64)
print(float_data.dtype)
# 输出结果为float64
总结
以上就是今天要讲的内容,本文仅仅简单介绍了numpy的使用,而numpy提供了大量能使我们快速便捷地处理数据的函数和方法。这里只是一部分,以后会继续更新。