Numpy的基本操作

本文详细介绍了Numpy的基本操作,包括创建数组、数据类型、形状操作、数组计算、文件读取、切片操作、数值修改、特殊索引、nan与inf的处理、统计函数的使用,以及与Matplotlib的结合应用。通过实例展示了如何在Numpy中进行科学计算和数据处理。
摘要由CSDN通过智能技术生成

Numpy

1.关于Numpy

Numpy一个在Python中做科学计算的基础库,有了Numpy,很多数值计算边的很简单。

Numpy是大部分Python科学计算库的基础库(如Pandas),多用于在大型、多维数组上执行数值运算。

2. Numpy创建数组

直接cmd打开控制台,输入ipython,然后在命令行中如下依次键入命令

In [1]: import numpy as np

In [2]: a = np.array([1,2,3,4,5])

In [3]: a
Out[3]: array([1, 2, 3, 4, 5])

In [4]: b = np.array(range(1,6))

In [5]: b
Out[5]: array([1, 2, 3, 4, 5])

In [7]: type(a)
Out[7]: numpy.ndarray

如上所述,就创建了两个一维数组,数组的类型为 numpy.ndarray类型

2.1 Numpy中常见的数据类型

类型 类型代码 说明
int8, uint8 i1, u1 有符号、无符号8位整型
int16, uint16 i2, u2 有符号、无符号16位整型
int32, uint32 i4, u4 有符号、无符号32位整型
int64, uint64 i8, u8 有符号、无符号64位整型
float16 f2 半精度浮点数
float32 f4或f 单精度浮点数(c语言当中的float)
float64 f8或d 双精度浮点数(C语言当中的double)
float128 f16或g 扩展浮点数
complex64,complex128, complex256 c8, c16, c32 分别用两个32,两个64, 两个128位表示的复数
bool 布尔类型
In [3]: t1 = np.arange(12)

In [4]: t1
Out[4]: array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])

In [6]: t2 = np.array([[3,4,5,6,7,8],[4,5,6,7,8,9]])

In [7]: t2
Out[7]:
array([[3, 4, 5, 6, 7, 8],
       [4, 5, 6, 7, 8, 9]])

In [8]: t1.dtype
Out[8]: dtype('int32')  #默认元素类型为int32

In [10]: a = np.array([1,0,2,3],dtype = np.bool) #可以通过后面的dtype参数指定元素类型

In [11]: a
Out[11]: array([ True, False,  True,  True])

#可以通过astype来临时改变元素类型,但该操作并不能是原数组改变
In [12]: a.astype(np.int32) # 这个等价于a.astype("i4"),即直接用类型代码也是可以的
Out[12]: array([1, 0, 1, 1])

In [13]: a
Out[13]: array([ True, False,  True,  True])
In [10]: a =np.array(np.random.rand(10))

In [11]: a
Out[11]:
array([0.20781111, 0.84837294, 0.70426743, 0.19315556, 0.98874592,
       0.37785934, 0.33709601, 0.25996463, 0.5227643 , 0.89457062])

In [12]: np.round(a,2) #a的每一个元素都保留两位小数,注意:该操作不会改变原来的a数组
Out[12]: array([0.21, 0.85, 0.7 , 0.19, 0.99, 0.38, 0.34, 0.26, 0.52, 0.89])

In [13]: a
Out[13]:
array([0.20781111, 0.84837294, 0.70426743, 0.19315556, 0.98874592,
       0.37785934, 0.33709601, 0.25996463, 0.5227643 , 0.89457062])

3.数组的形状

3.1获取数组的形状,指定数组形状

In [15]: a = np.array([[3,4,5,6,7,8],[4,5,6,7,8,9]])

In [16]: a
Out[16]:
array([[3, 4, 5, 6, 7, 8],
       [4, 5, 6, 7, 8, 9]])

In [17]: a.shape 
Out[17]: (2, 6) #a是2行6列的

In [18]: a.reshape(3,4) #注意,a一共有12个元素,因此reshape的时候,注意元素个数一定要对应上,否则就会报错
Out[18]:
array([[3, 4, 5, 6],
       [7, 8, 4, 5],
       [6, 7, 8, 9]])

In [19]: a.shape #reshape同样,不会改变原来的a
Out[19]: (2, 6)
    
In [20]: a.reshape(5,6)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-20-27415d54c7dd> in <module>
----> 1 a.reshape(5,6)

ValueError: cannot reshape array of size 12 into shape (5,6)
In [21]: a.reshape(1,12)

#注意,这样,就重新构成了一个1行12列数组,依然是一个二维数组
Out[21]: array([[3, 4, 5, 6, 7, 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值