Numpy学习笔记
1.数组
import numpy as np
vctor = [1,2,3]#该数组的成立时又Python来成立的
matrix = np.array([[1,'张麻子'],[2,'黄四郎']])#本质上只能进入一个数组,其数组内为一个二维数组
print(matrix)
aran = np.arange(15)#自动生成一个15个元素的一维数组,其内容用数字填充
aran = np.arange(15).reshape(3,5)#使其成为二维数组,代表三行五列
print(aran)
print(aran.shape)#获取数组的维度
2.读取数据
numpy中的genfromtxt方法
np.genfromtxt(‘url’,’ ') ’ '表示读取是以空格进行分割,之后会返回一个多维数组
注意:numpy中的数组的类型必须都是相同的类型,Numpy可以自动判断数组内数据的类型,
我们可以通过numpy的dtype属性来判断数组内对象的数据类型
3.正确读取数据
在读取数据时如果出错,那么在得到的多维数组中会出现数据类型na(not available)和nan(not a number),na表示读取的数值是空的、不存在的,nan是因为数据类型转换出错。对于nan的出错,我们可以用genfromtxt()来转化数据类型。可以在genfromtxt()方法中设置关键字参数
1.dtype关键字要设定为‘U75’.表示每个值都是75byte的unicode。
2.skip_header关键字可以设置为整数,这个参数可以跳过文件开头的对应的行数,然后再执行任何其他操作。
4.数组切片
Numpy支持切片
例如现在有一个三行二列的数组:
print(matrix[:,1])语法代表选择所有的行,但是列的索引是1的数据。那么就返回10,25,40。
print(matrix[:,0:2])代表的是选取所有的行,列的索引是0和1。
print(matrix[1:3,:])代表的是选取行的索引值1和2以及所有的列。
print(matrix[1:3,0:2])代表的是选取行的索引1和2以及列的索引是0和1的所有数据。
5.数组比较
numpy强大的地方在于数组和矩阵的比较,数据比较之后会产生Boolean值
输出结果:
6.数组替代
#数组替代
arr = np.array([10,20,30,40])
Isequal = (arr == 10) | (arr == 20)#查找数组中条件成立的元素
print(Isequal)
arr[Isequal] = 15#为true的元素会被替换掉
print(arr)
#那么矩阵中的数组替代也一样
前面我们说到过,在数组中有一些我们的空值。比如 na 和 nan 数据类型,而且Numpy要求数组中的数据元素是一致的,所以我们就可以运用这种方法来替换掉数组中其他的元素。
7.数据类型转换
Numpy ndarray数据类型可以通过参数dtype设定,而且可以使用astype转换类型,在处理文件时这个会很实用,注意astype调用会返回一个新的数组,也就是原始数据的一份复制。
注意:上述例子中,如果字符串中包含非数字类型的时候,从string转float就会报错。
8.Numpy的统计计算方法
比较重要的有:
sum():计算数组元素的和;对于矩阵计算结果为一个一维数组,需要指定行或者列。
mean():计算数组元素的平均值;对于矩阵计算结果为一个一维数组,需要指定行或者列。
max():计算数组元素的最大值;对于矩阵计算结果为一个一维数组,需要指定行或者列。
需要注意的是,用于这些统计方法计算的数值类型必须是int或者float。
如上述例子所示,axis=1计算的是行的和,结果以列的形式展示。axis=0计算的是列的和,结果以行的形式展示。
9.后面还需要对pandas、SciPy等常用Python库进行一些学习