详解Numpy(基于jupyter notebook)

这篇具有很好参考价值的文章主要介绍了详解Numpy(基于jupyter notebook)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.创建数组

#引入numpy包,以后np就代表numpy
import numpy as np
a=np.arange(10,30,2)#10为起点,30为终点,2为步长 array数据类型:数组
a
array([10, 12, 14, 16, 18, 20, 22, 24, 26, 28])
a3=[1,2,3] #数据类型:列表
a3
[1, 2, 3]
type(a3)#type()判断数据类型
list
#方法1:
a = np.array([1,2,3]) #推荐
a
array([1, 2, 3])
#建立多维数组
a1 = np.array([[1,2,3],[7,8,9]])  
a1
array([[1, 2, 3],
       [7, 8, 9]])
#方法2:利用函数,常用的函数有zeros、ones和empty用法都类似,以zeros为例加以说明
a=np.zeros(10)#生成10个元素,元素全为0   ones()生成的元素全为1
a
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
#方法2:利用函数,常用的函数有zeros、ones和empty用法都类似,以zeros为例加以说明
a=np.ones(10)#生成10个元素,元素全为0   ones()生成的元素全为1
a
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
a=np.empty(10)#有可能是全0,也可能是随机数
a
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
#方法2:arange函数,重要
a=np.arange(10)#产生10个从0开始的自然数,arange()自然数组
a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
a=np.linspace(10,30,12)#10为起始点,30为终止点,生成12个数,默认个数为50,随机产生
a
array([10.        , 11.81818182, 13.63636364, 15.45454545, 17.27272727,
       19.09090909, 20.90909091, 22.72727273, 24.54545455, 26.36363636,
       28.18181818, 30.        ])
a.ndim #判断a的维数
1
a.shape #判断a的形状,为12行(12个数)
(12,)
#改变形状reshape
#一般先生成一个一维的,然后reshape为二维的,需要注意的是数据的一致性,10=2*5
a=np.arange(10).reshape(2,5)
a
array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])
a.shape
(2, 5)

2.数据类型

a.dtype #判断a中元素类型,区别于type
dtype('int64')
a1=np.array([True,False,False,True])#bool型数据:元素只有True或者False
a1.dtype
dtype('bool')

数据类型及描述
bool: 存储为一个字节的布尔值(真或假)
int: 默认整数,相当于 C 的long,通常为int32或int64
intc:相当于 C 的int,通常为int32或int64
intp:用于索引的整数,相当于 C 的size_t,通常为int32或int64
int8字节(-128 ~ 127)
int16 :16 位整数(-32768 ~ 32767)
int32: 32 位整数(-2147483648 ~ 2147483647)
int64 64 位整数(-9223372036854775808 ~ 9223372036854775807)
uint8: 8 位无符号整数(0 ~ 255)
uint16: 16 位无符号整数(0 ~ 65535)
uint32: 32 位无符号整数(0 ~ 4294967295)
uint64: 64 位无符号整数(0 ~ 18446744073709551615)
float_:float64的简写
float16半精度浮点:符号位,5 位指数,10 位尾数
float32单精度浮点:符号位,8 位指数,23 位尾数
float64双精度浮点:符号位,11 位指数,52 位尾数
complex_:complex128的简写
complex64:复数,由两个 32 位浮点表示(实部和虚部)
complex128:复数,由两个 64 位浮点表示(实部和虚部)
NumPy 数字类型是dtype(数据类型)对象的实例,每个对象具有唯一的特征。 这些类型可以是np.bool_,np.float32等。文章来源地址https://www.toymoban.com/news/detail-685576.html

a3 = np.array([1.2, 3.23, 7.88])
a3.dtype
dtype('float64')
a3.round(1) #a3元素保留位小数,四舍五入
array([1.2, 3.2, 7.9])
a4 = a3.astype(np.int32)#a3取整(int32)(去掉小数)
a4
array([1, 3, 7], dtype=int32)
a = np.array([True,True,False,True,False])
a
array([ True,  True, False,  True, False])
a.dtype
dtype('bool')
a5 = a.astype(np.float32) #a取单精度浮点数
a5
array([1., 1., 0., 1., 0.], dtype=float32)
a5.dtype
dtype('float32')

3.数组切片和索引

a =np.arange(10)
#前包括后不包括(从第0位开始),观察运行结果,注意切出来的仅仅是原来的一个视图,并没有改变原数据
#思考一下为啥这样,有什么益处:取出部分数据进行分析,并不改表原来的总数据
a[5:]
array([5, 6, 7, 8, 9])
a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
a[5:8]#第五个到第八个元素
array([5, 6, 7])
#从0开始
a[:5]#从0开始的前5个元素,默认步长为1 
array([0, 1, 2, 3, 4])
#从0开始,到5,步长为2
a[:5:2]
array([0, 2, 4])
a[::2]#对所有元素,从0开始,步长为2
array([0, 2, 4, 6, 8])
a[-1]#取最后一个元素
9
a[:-1]# 除了最后一个取全部
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
a[::-1]# 取从后向前(相反)的元素
array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])
a[::-3]#从后向前取值,步长为3
array([9, 6, 3, 0])
a[2::-1]# 取从下标为2的元素翻转读取
array([2, 1, 0])
a = np.array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]])
b = a[::-1, :]
b
array([[5, 6, 7, 8, 9],
       [0, 1, 2, 3, 4]])

4.Numpy的广播与数组操作

a=np.arange(10).reshape(2,5)
a
array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])
#当array与标量运算时,所有的元素都与该标量进行运算
a+10
array([[10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19]])
#相同形状的数组进行运算,则对应元素之间进行运算
a+a
array([[ 0,  2,  4,  6,  8],
       [10, 12, 14, 16, 18]])
a1=np.arange(10,15)
a1
array([10, 11, 12, 13, 14])
a+a1#每一行均与a1相加
array([[10, 12, 14, 16, 18],
       [15, 17, 19, 21, 23]])

5.数组合并与通用函数

#合并 np.concatenate,注意多维数组的输入方式
a = np.array([[1,2],[3,4]])
a
array([[1, 2],
       [3, 4]])
b = np.array([[5,6],[7,8]])
b
array([[5, 6],
       [7, 8]])
np.concatenate([a,b])#默认是行叠加,沿行合并,或者说沿0轴合并
array([[1, 2],
       [3, 4],
       [5, 6],
       [7, 8]])
np.concatenate([a,b],axis = 1)#对比 axis=1横轴(x轴),axis=0纵轴(y轴)默认axis=0
array([[1, 2, 5, 6],
       [3, 4, 7, 8]])
a = np.array([1,2,3,4])
b = np.array([5,6,7,8])
np.stack([a,b])
array([[1, 2, 3, 4],
       [5, 6, 7, 8]])
np.stack([a,b], axis = 1)
array([[1, 5],
       [2, 6],
       [3, 7],
       [4, 8]])
a = np.array([1,2,1,1,3,4,3,5,6,1])
np.unique(a)# 去重 去除重复元素:unique
array([1, 2, 3, 4, 5, 6])

6.其他通用函数

np.sqrt(a)
np.sin(a)
np.cos(a)
np.add(a,b)
np.sub(a,b)
np.mod(a,b)#等价于 a%b 求模
a//b #求余
a == b #比较运算
a>b
~(a>b)
#均值
a.mean()
#等价于
np.mean(a)
#求和
a.sum()
#正态分布
np.random.normal( size =(3,5))#normal正态分布

到了这里,关于详解Numpy(基于jupyter notebook)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深度学习】 Python 和 NumPy 系列教程(十二):NumPy详解:4、数组广播;5、排序操作

    目录 一、前言 二、实验环境 三、NumPy 0、多维数组对象(ndarray) 多维数组的属性 1、创建数组 2、数组操作 3、数组数学 4、数组广播 5、排序操作 1. np.sort() 函数 2. np.argsort() 函数 3. ndarray.sort() 方法 4. 按列或行排序 5. np.lexsort() 函数 6. np.partition() 函数 7. np.argpartition() 函

    2024年02月08日
    浏览(49)
  • 大数据:NumPy进阶应用详解

    结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 再推荐一下最近热更的:《大厂测试高频面试题详解》 该专栏对近年

    2024年02月12日
    浏览(19)
  • NumPy 中数组拼接、合并详解

    将值添加到数组的末端,返回一个新的数组,而原数组不变。 参数 描述 arr : 类数组 输入的数组 values : 类数组 向数组 arr 添加的元素,需要与 arr 维度相同 axis : 整型 添加操作的方向轴,axis 取 0 表示沿竖直方向操作,axis 取 1 表示沿水平方向操作,若未提供 axis 值,在添加

    2024年01月19日
    浏览(31)
  • 大数据:Numpy基础应用详解

    Numpy 是一个开源的 Python 科学计算库, 用于快速处理任意维度的数组 。Numpy 支持常见的数组和矩阵操作 ,对于同样的数值计算任务,使用 NumPy 不仅代码要简洁的多,而且 NumPy 的性能远远优于原生 Python,基本是一个到两个数量级的差距,而且数据量越大,NumPy 的优势就越明

    2024年02月12日
    浏览(18)
  • 大数据(二):Numpy基础应用详解

    Numpy 是一个开源的 Python 科学计算库, 用于快速处理任意维度的数组 。Numpy 支持常见的数组和矩阵操作 ,对于同样的数值计算任务,使用 NumPy 不仅代码要简洁的多,而且 NumPy 的性能远远优于原生 Python,基本是一个到两个数量级的差距,而且数据量越大,NumPy 的优势就越明

    2024年02月11日
    浏览(21)
  • 大数据(三):NumPy进阶应用详解

    结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 再推荐一下最近热更的:《大厂测试高频面试题详解》 该专栏对近年

    2024年02月11日
    浏览(21)
  • numpy.linalg.lstsq()详解以及用法示例

    将最小二乘解返回到线性矩阵方程。 计算近似求解方程的向量x。 该方程可能未确定、良好或过度确定(即,线性独立行数可以小于、等于或大于其线性独立列数)。 如果a是平方且为全秩,则x(但对于舍入误差)是等式的\\\"精确\\\"解。否则,x最小化欧几里得 2 范数 。 如果有

    2023年04月09日
    浏览(22)
  • Python中Numpy的np.array详解

    np.array 用于创建一个新的NumPy数组对象。其语法如下: object :任何可用于初始化新数组的对象,例如列表、元组、数组等。 dtype :新数组的数据类型。如果未指定,则会从输入对象中推断数据类型。 其他参数允许进一步控制新数组的创建。 返回一个新的NumPy数组。 示例

    2024年02月08日
    浏览(36)
  • Python Numpy 关于 linspace()函数 使用详解(全)

    用plt画图的时候,偶尔会看到这个函数的出现,索性直接深入源码实战进行复现 主要功能 :在线性区域中生成等间距的序列,原先在Numpy中可以用 numpy.arange() ,但对于浮点数会有精度丢失,因此 linspace() 对于浮点数比较友好。适当的参数,两者都可选择。 具体源码: numpy

    2024年02月05日
    浏览(37)
  • numpy抽样函数 np.random.choice用法详解

    顾名思义,抽样函数,定义如下: 参数说明: a :待抽样的样本(一维数组或整数) size: 输出大小,默认返回单个元素 replace : 抽样后的元素是否可重复,默认是 p: 每个样本点被抽样的概率,默认均匀抽样 举例如下: 从[1,2,3,4,5]中随机抽三个元素,可重复,概率分别为[0.1,

    2024年02月15日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包