Numpy笔记
基础
1、NumPy的主要对象:同种元素的多维数组。
2、在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。
例:[[ 1., 0., 0.],
[ 0., 1., 2.]]
秩:2,第一个维度(对应竖轴):2,第二个维度:3
例:
import numpy
a=arange(15).reshape(3,5)
print(a)
print(a.shape) #维度,这个元组的长度是秩。(3, 5)
print(a.ndim) #轴的个数。2
print(a.size) #15
print(type(a)) #<class 'numpy.ndarray'>
创建数组
1、使用array函数从常规的Python列表和元组创造数组。数组类型由原序列中的元素类型推导而来。
例:
import numpy
a=array([2,3,4]) #参数是列表或元组,而不是一组数字
print(a.dtype) #输出:int32
b=array([1.2,2.3,3.4])
print(b.dtype) #输出:float64
2、二维三维数组
a=array([(2,3,4),[5,6,7]])
3、指定数据类型
a=array([(2,3,4),[5,6,7]],dtype=complex)
array([[ 2.+0.j, 3.+0.j, 4.+0.j],
[ 5.+0.j, 6.+0.j, 7.+0.j]])
4、使用占位符创建数组
(1)创建一个全是0的数组。默认创建的数组类型(dtype)都是float64
a=zeros((3,4))
a
Out[28]:
array([[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]])
(2)创建一个全1的数组
a=ones((3,4,4),dtype=int16) #可以指定类型
a
Out[30]:
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]], dtype=int16)
(3)创建一个内容随机并且依赖与内存状态的数组
empty((2,4))
Out[32]:
array([[ 0.00000000e+000, 5.94855038e-321, 2.47032823e-323,
1.47675400e-311],
[ 0.00000000e+000, 2.47032823e-323, 1.47675399e-311,
0.00000000e+000]])
5、创建一个数列,arange函数,返回数组
arange(2,5)
Out[53]: array([2, 3, 4])
打印数组
1、嵌套列表:
最后的轴从左到右打印;次后的轴从顶向下打印;剩下的轴从顶向下打印,每个切片通过一个空行与下一个隔开。
2、一维数组被打印成行,二维数组成矩阵,三维数组成矩阵列表。
3、如果一个数组用来打印太大了,NumPy自动省略中间部分而只打印角落
print(np.arange(1000))
[ 0 1 2 ..., 997 998 999]
4、强制打印整个数组,设置printoptions参数来更改打印选项
np.set_printoptions(threshold='nan')
from numpy import *
set_printoptions(threshold=1000)
print(arange(1000))
基本运算
1、数组的算术运算是按元素的。
2、NumPy中的乘法运算符*指示按元素计算
import numpy as np
b = np.array( [[2,0],[3,4]] )
a = np.array( [[1,1],[0,1]] )
print(a*b)
输出:
[[2 0]
[0 4]]
3、矩阵乘法可以使用dot函数实现
print(np.dot(a,b))
输出:
[[5 4]
[3 4]]
4、+=