Numpy大杂烩总结
python学习 . 2019/12/20发布 . shanyonggang_web . 我要评论 . 156阅读

numpy属性

array = np.array([[1,2,3],[2,3,4]])
# 行数及列数
array.shape
(2, 3)
# 纬度
array.ndim
2
# 元素个数
array.size
6

数组创建

a = np.array([2,23,4]) 
array:创建数组
dtype:指定数据类型
zeros:创建数据全为0
ones:创建数据全为1
empty:创建数据接近0
arrange:按指定范围创建数据
linspace:创建线段
reshape:改变数据形状
a = np.array([2,23,4],dtype=np.float)
# array([ 2., 23.,  4.])
a = np.array([[2,23,4],[2,32,4]])  # 2d 矩阵 2行3列
# array([[ 2, 23,  4],[ 2, 32,  4]])
a = np.zeros((3,4)) # 数据全为0,3行4列
# array([[0., 0., 0., 0.],[0., 0., 0., 0.],[0., 0., 0., 0.]])
a = np.ones((3,4),dtype = np.int)   # 数据为1,3行4列
# array([[1, 1, 1, 1],[1, 1, 1, 1],[1, 1, 1, 1]])
a = np.empty((3,4)) # 数据为empty,3行4列,空数组
# array([[0., 0., 0., 0.],[0., 0., 0., 0.],[0., 0., 0., 0.]])
a = np.arange(10,20,2) # 10-19 的数据,2步长
# array([10, 12, 14, 16, 18])
a = np.arange(12).reshape((3,4))    # 3行4列,0到11
# array([[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11]])
a = np.linspace(1,10,20)    # 开始端1,结束端10,且分割成20个数据,生成线段
# array([ 1.        ,  1.47368421,  1.94736842,  2.42105263,  2.89473684,
#        3.36842105,  3.84210526,  4.31578947,  4.78947368,  5.26315789,
#        5.73684211,  6.21052632,  6.68421053,  7.15789474,  7.63157895,
#        8.10526316,  8.57894737,  9.05263158,  9.52631579, 10.        ])

基础运算

a = np.array([[1,2,3],[4,5,6]])
b = np.array([[2,4,6],[1,7,9]])
# a+b/a-b/a*b/a**2
# 函数运算c = np.sin(a)
a > 0 # 布尔运算
array([[ True,  True,  True],[ True,  True,  True]])
# 矩阵乘法两种方式
np.dot(a,b)
a.dot(b)
# 累加(以此为例)、最小值、最大值
a = np.array([[1,2],[4,5]])
np.sum(a) # 求所有元素的和  12
np.sum(a,axis=0) # 求每列的和  array([5, 7])
np.sum(a,axis=1) # 求每行的和  array([3, 9])
# argmin() 和 argmax() 两个函数分别对应着求矩阵中最小元素和最大元素的索引。
a = np.array([[1,2],[4,5]])
a.argmax() # 同样可以加axis参数
# np.mean(a)\np.average(a)计算平均值
np.cumsum(a) # 表示累加
np.transpose(a) # 表示矩阵转置

Numpy索引

# 类似于切片索引
a = np.array([[1,2],[4,5]])
a[0] # 选取第一行数据
a[:,1] # 选取所有行,第二列数据

Numpy合并

a = np.array([[1,2],[4,5]])
b = np.array([[2,4],[1,7]])
# 按行合并
np.vstack((a,b))
array([[1, 2],
       [4, 5],
       [2, 4],
       [1, 7]])
# 按列合并
np.hstack((a,b))
array([[1, 2, 2, 4],
       [4, 5, 1, 7]])
# 类似于转置
A = np.array([1,1,1])
array([[1],
       [1],
       [1]])
A[:,np.newaxis].shape
(3, 1)

数组分割

# 纵向分割(仅能等量分割)
a = np.arange(12).reshape((3, 4))
np.split(a,2,axis=1)
[array([[0, 1],
        [4, 5],
        [8, 9]]), array([[ 2,  3],
        [ 6,  7],
        [10, 11]])]
# 横向分割(仅能等量分割)
np.split(a,3,axis=0)
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
# 横向分割(不等量分割)
np.array_split(a,2,axis=0)
[array([[0, 1, 2, 3],
        [4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
# 纵向分割(不等量分割)
np.array_split(a,3,axis=1)
[array([[0, 1],
        [4, 5],
        [8, 9]]), array([[ 2],
        [ 6],
        [10]]), array([[ 3],
        [ 7],
        [11]])]
np.vsplit()与np.split(a,2,axis=1)类似
np.hsplit()与np.split(a,3,axis=0)类似

赋值讲解

等号赋值
= 的赋值方式会带有关联性
copy赋值
copy() 的赋值方式没有关联性

 


  • 有疑问请在下方评论区留言,我会尽快回复。
  • Email私信我: 511248513@qq.com 或添加博主 微信
本文标题:Numpy大杂烩总结
本文作者:shanyonggang_web
发布时间:2019年12月20日 15:41
许可协议: 署名-非商业性使用 4.0 国际许可协议
知识共享许可协议     转载请保留原文链接及作者
正在加载今日诗词....
您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面的


登录 后回复

当前暂无评论,点击登录来做第一个吃螃蟹的人吧!