科学计算模块Numpy-初级 (2)

NumPy(Numerical Python)是Python的一种开源的数值计算扩展。提供多维数组对象,各种派生对象(如掩码数组和矩阵),这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。

- 几乎所有从事Python工作的数据分析师都利用NumPy的强大功能。
  - 强大的N维数组
  - 成熟的广播功能
  - 用于整合C/C++和Fortran代码的工具包
  - NumPy提供了全面的数学功能、随机数生成器和线性代数功能
  

- 安装Python库

- 第一种方式:

  - pip install jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple
  - pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple


- 第二种方式:

  - 直接安装[anaconda下载](https://www.anaconda.com/products/individual#Downloads)

  - 注意:安装时!!! 添加一下环境变量~

  * 百度网盘链接: https://pan.baidu.com/s/1sQ8LMH6q8ezVUzNjSCtgyQ 提取码: sm7m 

- 启动终端

  * Windows----> 快捷键:**win + R** ----->输入:**cmd**回车------>命令行出来

  - Mac ---->启动终端

- 启动jupyter

  - 进入终端输入指令:**jupyter notebook**
  - 在哪里启动jupyter启动,浏览器上的目录,对应哪里,windows默认路径是:**C:\Users\lufengkun**
  - **C:\Users\xxx**

第一部分 基本操作

第一节  数组创建

创建数组的最简单的方法就是使用array函数,将Python下的list转换为ndarray。

```python
import numpy as np
l = [1,3,5,7,9] # 列表
arr = np.array(l) # 将列表转换为NumPy数组
arr # 数据一样,NumPy数组的方法,功能更加强大
# 输出为
# array([1, 3, 5, 7, 9])
```

我们可以利用np中的一些内置函数来创建数组,比如我们创建全0的数组,也可以创建全1数组,全是其他数字的数组,或者等差数列数组,正态分布数组,随机数。


```python
import numpy as np
arr1 = np.ones(10) # 输出为:array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])

arr2 = np.zeros(10) # 输出为: array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])

arr3 = np.full(shape = [2,3],fill_value=2.718) #shape=[2,3]里面填充值为2.718数
# 输出为:
# array([[2.718, 2.718, 2.718],
#       [2.718, 2.718, 2.718]])

arr4 = np.arange(start = 0,stop = 20,step = 2) 
# 等差数列 输出为:array([ 0,  2,  4,  6,  8, 10, 12, 14, 16, 18])

arr5 = np.linspace(start =0,stop = 9,num = 10) 
# 等差数列 输出为:array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])

arr6 = np.random.randint(0,100,size = 10) 
# int随机数 输出为:array([ 4,  8, 79, 62, 34, 35,  2, 65, 47, 18])

np.random.randint(0,10,size=(3,5))#创建二维数组
#输出为:
array([[6, 8, 8, 4, 2],
       [4, 6, 7, 4, 1],
       [9, 4, 4, 2, 0]])

np.random.randint(0,10,size=(2,3,5))#创建三维数组
#输出为:
array([[[8, 1, 2, 7, 1],
        [0, 2, 3, 0, 7],
        [7, 1, 8, 7, 2]],

       [[3, 2, 6, 3, 6],
        [4, 6, 8, 0, 9],
        [5, 1, 3, 0, 4]]])


arr7 = np.random.randn(5) 
# 正态分布 输出为:array([ 0.57807872,  0.37922855,  2.37936837, -0.28688769,  0.2882854 ])

arr8 = np.random.random(size = 5) 
# float 随机数 输出为:array([0.59646412, 0.37960586, 0.38077327, 0.76983539, 0.22689201])

np.set_printoptions(suppress=True)#不显示科学计数法

np.logspace(0,10,base=2,num=11)#等比数列,0到10,倍数为2,个数11个
#输出为:
array([   1.,    2.,    4.,    8.,   16.,   32.,   64.,  128.,  256.,
        512., 1024.])






```

 第二节  查看操作

* jupyter扩展插件(不安装)
  * pip install jupyter_contrib_nbextensions -i https://pypi.tuna.tsinghua.edu.cn/simple
  * pip install jupyter_nbextensions_configurator -i https://pypi.tuna.tsinghua.edu.cn/simple
  * jupyter contrib nbextension install --user
  * jupyter nbextensions_configurator enable --user
  * **退出,重新进入jupyter notebook就可以了**

NumPy的数组类称为ndarray,也被称为别名 array。请注意,numpy.array这与标准Python库类不同array.array,后者仅处理一维数组且功能较少。ndarray对象的重要属性是

 1.2.1 数组的轴数、维度

```python
import numpy as np 
arr = np.random.randint(0,100,size = (3,4,5))
arr.ndim # 输出 3
```

1.2.2 数组尺寸形状

```python
import numpy as np 
arr = np.random.randint(0,100,size = (3,4,5))
arr.shape # 输出 (3,4,5)
```

1.2.3 数组元素的总数

```python
import numpy as np 
arr = np.random.randint(0,100,size = (3,4,5))
arr.size # 输出 3*4*5 = 60
```

1.2.4 数据类型

```python
import numpy as np 
arr = np.random.randint(0,100,size = (3,4,5))
arr.dtype # 输出 dtype('int64')
```

1.2.5 数组中每个元素的大小(以字节为单位)

```python
import numpy as np 
arr = np.random.randint(0,100,size = (3,4,5))
arr.itemsize #输出是 8 ,因为数据类型是int64,64位,一个字节是8位,所以64/8 = 8
```

第三节 文件IO操作

 1.3.1 保存数组

save方法保存ndarray到一个npy文件,也可以使用savez将多个array保存到一个.npz文件中

```python
arr=np.arange(0,10,3)
np.save('./tata1',arr)#在当前文件夹下保存arr,取名为tata1
np.lo
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值