这节课我们来学习numpy的一些基本的操作和属性。
为什么这样安排学习课程呢?
我觉得这样交叉学习,使用到什么的时候就去查看,对于numpy也好还是matplotlib的学习也好。
他们的内容有很多,要想全部掌握还是很难的,只有不断的自己去实践,遇到什么不知道的问题就去学习。
而不是想去看numpy和matplotlib的相关详细教学,把numpy学习透彻再进行机器学习。
以上只是个人看法。
个人觉得学习numpy要有点线性代数的基础知识。
把numpy的学习理解为一切基于矩阵。【这样就方便理解和学习numpy的使用了!】
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : SundayCoder-俊勇
# @File : numpy1.py
import numpy as np
# numpy基本学习第一课。
# numpy基本属性。
# 创建一个两行三列的int类型矩阵。
# dtype全称为datatype。也就是数据类型。
array=np.array([[1,2,3],[4,5,6]],dtype=np.int)
print array
# 形状,也就是几行几列【学过线性代数就简单多了】
print array.shape
# 维度【也就是几行】
print array.ndim
# 共有多少和元素。这里2行3列,总共有6个元素。
print array.size
# 获得array这个行列式的转置矩阵。
print array.T
# 索引值的使用
# arange与python中的range一样,默认从0开始。
# 索引和列表的嵌套也基本一样。
# reshape是可以改变数据变成几行几列的矩阵。
b=np.arange(12).reshape(3,4)
print b
# b[1][3]也可以写成b[1,3]
print b[1][3]
# 输出b的行数据。
for row in b:
print(row)
#这也是输出行数据,说明这个只能输出行数据。
for col in b:
print (col)
# 怎么输出列数据。学过线性代数的知道转置矩阵的作用。
# 输出列数据的做法
for col in b.T:
print col
结果如下:
[[1 2 3]
[4 5 6]]
(2, 3)
2
6
[[1 4]
[2 5]
[3 6]]
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
7
[0 1 2 3]
[4 5 6 7]
[ 8 9 10 11]
[0 1 2 3]
[4 5 6 7]
[ 8 9 10 11]
[0 4 8]
[1 5 9]
[ 2 6 10]
[ 3 7 11]
另外补充一点就是numpy中所有的dtype类型如下: