Numpy学习笔记1|Numpy入门

Numpy官网

安装

在终端键入pip install numpy 可以进行安装,若超时失败,可使用国内镜像

安装成功后在程序中import numpy as np即可使用

Ndarray对象

Ndarray对象是用来存放同类型元素的多维数组。Ndarray中的每个元素在内存中都有相同存储大小的区域。

创建Ndarray对象

通过调用Numpy的array函数来创建Ndarray对象

array = np.array([[1,2,3],
                  [4,5,6]])

完整参数的函数如下:
np.array(object,dtype=None,copy = True,order = None,subok = False,ndmin=0
参数解释:

  1. object:数组或者嵌套的数列
  2. dtype:数组元素的数据类型,可选
  3. copy:对象是否需要复制,可选
  4. order:创建数组的样式,C为行方向,F为列方向,A为任意方向,可选
  5. subok:默认返回一个与基类类型相同的数组,可选
  6. ndmin:指定数组的最小维度,可选
    如下:
    dtype参数指定数据类型
# 指定数据类型
array = np.array([[1,2,3],
                  [4,5,6]],dtype=int)

print(array.dtype)

在这里插入图片描述

生成全为0的矩阵
# 生成一个三行四列的全零矩阵
zero_array = np.zeros((3,4))

在这里插入图片描述

生成全为1的矩阵
zero_array = np.ones((3,4))
print(zero_array)

在这里插入图片描述

生成范围内的连续/步长数组
zero_array = np.arange(0,11,2)

在这里插入图片描述
若想要改为2行3列的矩阵,可以使用reshape函数

zero_array = np.arange(0,11,2).reshape((2,3))

在这里插入图片描述

从已有ndarray对象中创建
asarray(object,dtype,order)

将列表、元组等转换为ndarray

x = [1,2,3,4,5,6]
array = np.asarray(x)
array.shape = (2,3)
print(array)

在这里插入图片描述

frombuffer(buffer,dtype,count=-1,offset=0)

用于实现动态数组。接收buffer输入参数,以流的形式读入转化成ndarray对象
参数解释:

  1. buffer:可以是任意对象,会以流的形式读入
  2. dtype:可选
  3. count:读取的数据数量,默认为-1,读取所有数据
  4. 读取的起始位置,默认为0
s = b'Hello Numpy'
a = np.frombuffer(s,dtype= 'S1')
print(a)

在这里插入图片描述

fromiter(iterable,dtype,count=-1)

从可迭代对象中建立ndarray对象,返回一维数组
dtype参数是必写的

list = [1,2,3,4,5,6]
it = iter(list)
a = np.fromiter(it,dtype=int)
a.shape = (2,3)
print(a)

在这里插入图片描述

从数值范围创建数组

。。。(写不动了)

随机生成
a = np.random.random((2,3))
print(a)

第一个random是模块名,第二个random是函数名

Ndarray对象的属性

ndim 维度、秩
array = np.array([[1,2,3],
                  [4,5,6],
                  [7,8,9]],dtype=int)

print(array.ndim)
array1 = np.array([[[1,2],[3,4],
                    [5,6],[7,8]]])
print(array1.ndim)

在这里插入图片描述

shape

如二维的矩阵shape就是行数和列数

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

print(array.shape)
array1 = np.array([[[1,2],[3,4],
                    [5,6],[7,8]]])
print(array1.shape)

在这里插入图片描述
修改矩阵的shape:
可以直接赋值修改,也可以使用reshape

array1 = np.array([[[1,2],[3,4],
                    [5,6],[7,8]]])
array1.shape = (2,4)
print(array1)
array2 = array1.reshape(4,2)
print(array2)

itemsize

以字节的形式返回每一个元素的大小

x = np.array([[1,2],
              [3,4]],dtype=np.int8)
y = np.array([[1,2],
              [3,4]],dtype=np.int64)
print(x.itemsize)
print(y.itemsize)

在这里插入图片描述

flags

返回Ndarray对象的内存信息,包含以下信息:

  1. C_CONTIGUOUS:数据是在一个单一的C风格的连续段中
  2. F_CONTIGUOUS:数据是在一个单一的Fortran风格的连续段中
  3. OWNDATA:数组拥有它索世勇的内存或从另一个对象中借用
  4. WRITEABLE:数据区域可以被写入,将该值设置为False,则数据只读
  5. ALIGNED:数据和所有元素都适当地对齐到硬件上
  6. UPDATEIFCOPY:这个数组是其他数组的一个副本,当这个数组被释放时,原数组的内容将被更新
print(x.flags)

在这里插入图片描述

基础运算

加减法

对应位置元素相加减

a = np.array([10,20,30,40])
b = np.arange(4)  #[0,1,2,3]
print(a+b)
print(a-b)

在这里插入图片描述
也可以使用函数add()和subtract()

print(np.add(a,b))
print(np.subtract(a,b))
乘除

此处的乘法为逐个相乘,而非矩阵乘法。
除法中除数不能为0,所以修改了b的数据

a = np.array([10,20,30,40])
b = np.arange(1,5)  #[1,2,3,4]
# 乘法
print(np.multiply(a,b))
print(a*b)
# 除法
print(np.divide(a,b))
print(a/b)
矩阵乘

矩阵乘法需要使用函数dot()进行计算

x = np.array([[1,1],
             [0,1]])
y = np.arange(4).reshape((2,2))
print(x*y)
print(np.dot(x,y)) # 写法一
print(x.dot(y)) # 写法二

在这里插入图片描述

幂次方

使用双星号来表示幂方的运算,或者使用函数power()

print(b**2)
print(np.power(b,2))

在这里插入图片描述

取倒数 reciprocal()
a = np.array([10,20,30,40],dtype=float)
print(np.reciprocal(a))

在这里插入图片描述

取模 mod()
print(np.mod(a,4))

在这里插入图片描述

最值、元素和

元素和是矩阵中所有元素的和,最值是在一个矩阵中的元素进行比较的最大值和最小值

a = np.array([[1,100,5],
              [-1,-100,-5]])
print(np.sum(a)) # 元素和
print(np.max(a)) #元素最大值
print(np.min(a)) # 元素最小值

在这里插入图片描述
还可以通过参数axis指定维度,求在某个维度的最值和元素和。
axis = 1在行数,axis = 0在列数

a = np.array([[1,100,5],
              [-1,-100,-5]])
print(np.sum(a,axis=1)) # 元素和
print(np.max(a,axis=1)) #元素最大值
print(np.min(a,axis=1)) # 元素最小值
print('------------------------')
print(np.sum(a,axis=0)) # 元素和
print(np.max(a,axis=0)) #元素最大值
print(np.min(a,axis=0)) # 元素最小值

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值