1 数组的创建与操作
1.1 数组的创建
# 导入模块,并重命名为np
import numpy as np
# 单个列表创建一维数组
arr1 = np.array([3,10,8,7,34,11,28,72])
# 嵌套元组创建二维数组
arr2 = np.array(((8.5,6,4.1,2,0.7),(1.5,3,5.4,7.3,9),(3.2,3,3.8,3,3),(11.2,13.4,15.6,17.8,19)))
print('一维数组:\n',arr1)
print('二维数组:\n',arr2)
一维数组:
[ 3 10 8 7 34 11 28 72]
二维数组:
[[ 8.5 6. 4.1 2. 0.7]
[ 1.5 3. 5.4 7.3 9. ]
[ 3.2 3. 3.8 3. 3. ]
[11.2 13.4 15.6 17.8 19. ]]
1.2 数组元素的获取
# 一维数组元素的获取
print(arr1[[2,3,5,7]])
# 二维数组元素的获取
# 第2行第3列元素
print(arr2[1,2])
# 第3行所有元素
print(arr2[2,:])
# 第2列所有元素
print(arr2[:,1])
# 第2至4行,2至5列
print(arr2[1:4,1:5])
[ 8 7 11 72]
5.4
[3.2 3. 3.8 3. 3. ]
[ 6. 3. 3. 13.4]
[[ 3. 5.4 7.3 9. ]
[ 3. 3.8 3. 3. ]
[13.4 15.6 17.8 19. ]]
要是从数组中取出某几行和某几列,通常使用ix_函数,具体操作如下
# 第一行、最后一行和第二列、第四列构成的数组
print(arr2[np.ix_([0,-1],[1,3])])
# 第一行、最后一行和第一列、第三列、第四列构成的数组
print(arr2[np.ix_([0,-1],[1,2,3])])
[[ 6. 2. ]
[13.4 17.8]]
[[ 6. 4.1 2. ]
[13.4 15.6 17.8]]
1.3 数组的常用属性
在numpy模块中,可以通过genfromtxt函数读取外部文本文件的数据,这里的文本文件主要为csv文件和txt文件
# 读入数据
stu_score = np.genfromtxt(fname = r'C:\Users\lizheying\Desktop\从零开始学Python--数据分析与挖掘\第4章 Python数值计算工具--Numpy\stu_score.txt',delimiter='\t',skip_header=1)
# delimiter:指定数据集的列分隔符 \t:制表符,为了在不使用表格的情况下,上下对齐,table的意思。
# 查看数据结构
print(type(stu_score))
# 查看数据维数
print(stu_score.ndim)
# 查看数据行列数
print(stu_score.shape)
# 查看数组元素的数据类型
print(stu_score.dtype)
# 查看数组元素个数
print(stu_score.size)
<class 'numpy.ndarray'>
2
(1380, 5)
float64
6900
1.4 数组的形状处理
arr3 = np.array([[1,5,7],[3,6,1],[2,4,8],[5,8,9],[1,5,9],[8,5,2]])
# 数组的行列数
print(arr3.shape)
# 使用reshape方法更改数组的形状
print(arr3.reshape(2,9))
# 打印数组arr3的行列数
print(arr3.shape)
# 使用resize方法更改数组的形状
print(arr3.resize(2,9))
# 打印数组arr3的行列数
print(arr3.shape)