我的Numpy学习笔记

1.Numpy基础知识

学习网站:https://juejin.im/post/5a76d2c56fb9a063557d8357

引入numpy库,我的习惯是用np代替

import numpy as np

Numpy是python中最常用的库之一,其主要操作对象为多维数组。它是一个有正整数做索引,元素类型相同的表。其中维度称为axes,axes的数量为rank(维数)

例如一个二维数组

[[ 1., 0., 0. ],
 [ 0., 1., 2. ]]

维度rank = 2,第一维axes长度为2,第二维axes长度为3

 

Numpy的数组类型为ndarray,也可以称为array,注意区分numpy.array和标准py库里的array.array的区别:它只能处理一维数组且只能提供部分功能

 

ndarray的一些重要属性

narray.ndim

数组的维度axes大小即rank

ndarray.shape

数组的维数,是每个维度大小组成的元组,n行m列的矩阵,shape是(n,m)

ndarray.dtype

数组描述元素类型的对象,它是一种可以用标准python类型创建和指定的类型

ndarray.itemsize

数组中每个元素所占的字节数,如float64的itemsize是8(64/8bit),它与ndarray.dtype.itemsize相等

ndarray.data

数组实际元素的缓冲区,通过索引访问即可

 

2.Numpy测试

创建数组

利用array函数,传入数字列表创建

import numpy as np
a = np.array([1,2,3])
print(a)

高维数组利用多个列表即可,也可以传参指定数组类型,如

import numpy as np
a=np.array([[1,2,1],[3,4,5]],dtype=complex)
print(a)
>>>[[ 1.+0.j  2.+0.j  1.+0.j]
 [ 3.+0.j  4.+0.j  5.+0.j]]

zeros创建全为0的数组,ones是全为1的数组,empty创建随机数组,默认类型是float64,可以通过改变dtype属性改变

numpy的arange方法返回一个数组,参数是浮点型,前两个参数是范围,第三个参数是步长如

np.arange(10,30,5)

>>>array([10,15,20,25])

与其相似的是函数linspace,接受元素数量作为参数,步长根据数量自动划分

np.linspace(0,2,9) #9 numbers from 0-2


用于多个数的数据处理十分方便
import numpy as np
from numpy import pi

x = np.linspace(0,2*pi,100)
f=np.sin(x)
print(type(f))

>>><class 'numpy.ndarray'>

返回一个多个数据的数组

打印数组用arange和reshape函数可以实现矩阵输出

数组太大的情况下numpy会自动只保留角上的数据,可以通过以下代码实现打印所有数组

np.set_printoptions(threshold='nan')

基本操作

加减操作

b**2 #b所有数组元素乘方

10*np.sin(a)

a<35   #输出相应的bool值,设置dtype = bool

矩阵乘法通过dot函数进行模拟
 A.dot(B)

 A*B 输出的数组元素为相应元素的积

+= *= 等操作直接在原数组做修改,不会创建新数组

不同类型的数组操作,数组类型趋向于更普通或更精确的一种(向上转型)

很多类似求数组元素求和的一元操作都是有ndarray方法确定的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值