Day11

一、numpy概述

numpy具有矢量运算能力,快速、节省空间。numpy支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

二、numpy的运用

1、构建矩阵:
使用array方法

 
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

函数参数说明:
在这里插入图片描述

import numpy as np
#将二维列表转换成二维矩阵
a = np.array([[1,2,3],
             [4,5,6]])
#定义转换类型
b = np.array([2.3,3.5,3.6],dtype=int)
print("a:\n",a)
print("b:\n",b)
运行结果:
a:
 [[1 2 3]
 [4 5 6]]
b:
 [2 3 3]

2、数组属性:
shape方法:

import numpy as np

a = np.array([[1,23,2],[1,3,2]])
print(a.shape)
运行结果:
(2, 3)
import numpy as np

a = np.array(range(6)).reshape((2,3))
print(a)
运行结果:
[[0 1 2]
 [3 4 5]]

创建0/1矩阵:

import numpy as np

a = np.zeros((2,2))
b = np.ones((2,2))
print("zeros:\n",a)
print("ones\n",b)
运行结果:
zeros:
 [[0. 0.]
 [0. 0.]]
ones
 [[1. 1.]
 [1. 1.]]

numpy.linspace

 #在start与stop值之间等分,等分宽度为(stop-start)/num
numpy.linspace(start, stop, num, endpoint, retstep, dtype)

示例:

import numpy as np
a = np.linspace(10,20,5)
print(a)
输出结果:
[10.  12.5 15.  17.5 20. ]

切片和索引:

import numpy as np
a = np.arange(10)[2:7:2]

print(a)
输出结果:
[2 4 6]

矩阵合并:

import numpy as np
a = np.arange(10)[1:8:2].reshape(2,2)
b = np.arange(10)[2:9:2].reshape(2,2)

c = np.vstack((a,b))#竖直方向上
d = np.hstack((a,b))#水平方向上
#axis = 0等效于vstack
#axis = 1等效于hstack
e = np.concatenate((a,b),axis = 0)
f = np.concatenate((a,b),axis = 1)
print("竖直:\n",c,"\n水平:\n",d)
print("******************")
print("2竖直:\n",e,"\n2水平:\n",f)

运行结果:
竖直:
 [[1 3]
 [5 7]
 [2 4]
 [6 8]] 
水平:
 [[1 3 2 4]
 [5 7 6 8]]
******************
2竖直:
 [[1 3]
 [5 7]
 [2 4]
 [6 8]] 
2水平:
 [[1 3 2 4]
 [5 7 6 8]]

常用矩阵运算符

import numpy as np

a1 = np.array([[1,2,3],[4,5,6],[7,8,9]])
a2 = np.array([[4,5,6],[7,8,9],[7,8,9]])
#矩阵合并,转置
print(np.vstack((a1,a2)).T)
#矩阵对位相加
print("加:",a1 + a2)
#矩阵对位相乘
print("对位相乘",a1 * a2)
#矩阵相乘
print("矩阵乘法",np.dot(a1,a2))

运行结果:
[[1 4 7 4 7 7]
 [2 5 8 5 8 8]
 [3 6 9 6 9 9]]
加: [[ 5  7  9]
 [11 13 15]
 [14 16 18]]
对位相乘 [[ 4 10 18]
 [28 40 54]
 [49 64 81]]
矩阵乘法 [[ 39  45  51]
 [ 93 108 123]
 [147 171 195]]

矩阵信息获取(如均值等)

示例:

import numpy as np

a1 = np.array([[1,2,3],[4,5,6],[7,8,9]])

print(a1.min())
print(a1.max())
# 可以指定关键字参数axis来获得行最大(小)值或列最大(小)值
# axis=0 行方向最大(小)值,即获得每列的最大(小)值
# axis=1 列方向最大(小)值,即获得每行的最大(小)值
print(a1.max(axis=0))
print(a1.max(axis=1))

# 要想获得最大最小值元素所在的位置,可以通过argmax函数来获得
print(a1.argmax())

运行结果:
1
9
[7 8 9]
[3 6 9]
8
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值