Pythone库的使用(numpy)

目录

Numpy介绍

Numpy Ndarray对象 

数据类型对象dtype

创建数组

Numpy从已有的数组创建数组

Numpy从数值范围创建数组

Numpy切片和索引

Numpy迭代数组

数组操作

NumPy字符串函数

Numpy数学函数

Numpy算数函数

Numpy统计函数

Numpy排序、条件筛选函数

Numpy矩阵库(Matrix)


Numpy介绍

Numpy是一个运行速度非常快的数学库,主要用于数组计算。

NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。

SciPy 是一个开源的 Python 算法库和数学工具包。

SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。

Matplotlib 是 Python 编程语言及其数值数学扩展包 NumPy 的可视化操作界面。它为利用通用的图形用户界面工具包,如 Tkinter, wxPython, Qt 或 GTK+ 向应用程序嵌入式绘图提供了应用程序接口(API)。

Numpy Ndarray对象 

创建ndarray对象只需要调用array函数即可:

numpy.array(object,dtype=None,copy=True,order=None,subok=False,ndmin=0)

object:数组或嵌套的数列

dtype:数组元素的数据类型

copy:对象是否需要复制

order:创建数组的样式

subok:默认返回一个与基类型一致的数组

ndmin:指定生成数组的最小维度

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

输出:[ [1 2]

             [3 4] ]

           [[1 2 3 4]]

数据类型对象dtype

numpy的数值类型实际上是dtype对象的实例

import numpy as np
dt = np.dtype([('age',np.int8)])
print(dt)
a = np.array([(10,),(20,),(30,)], dtype = dt)
print(a)
print(a['age'])

输出:[('age','i1')]

           [(10,)(20,)(30,)]

           [10 20 30]

创建数组

numpy.empty    创建一个指定形状(shape),数据类型(dtype)且未初始化的数组

numpy.zeros     创建指定大小的数组,数组元素以0来填充

numpy.ones       创建指定形状的数组,数组元素以1来填充

Numpy从已有的数组创建数组

numpy.asarry(a,dtype = None,order = None)

numpy.frombuffer用于实现动态数组,接受 buffer 输入参数,以流的形式读入转化成 ndarray 对象:

numpy.frombuffer(buffer,dtype = float,cout = -1,offset = 0)

numpy.fromiter 方法从可迭代对象中建立 ndarray 对象,返回一维数组:

numpy.fromiter(iterable, dtype, count=-1)

Numpy从数值范围创建数组

1.numpy 包中的使用 arange 函数创建数值范围并返回 ndarray 对象,start为起始值默认为0,stop为终止值(不包含),步长默认为1,格式如下:

numpy.arange(start, stop, step, dtype)
import numpy as np
x = np.arange(10,20,2)  
print (x)

输出:[10  12  14  16  18]

2.numpy.linspace 函数用于创建一个一维数组,数组是一个等差数列构成的,格式如下:

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

3.numpy.logspace 函数用于创建一个于等比数列。格式如下:

np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
import numpy as np
a = np.logspace(0,9,10,base=2)
print (a)

输出:[1.  2.  4.  8.  16.  32.  64.  128.  256.  512.]

Numpy切片和索引

ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样。

import numpy as np
a = np.arange(10)
s = slice(2,7,2)  #从索引2开始到索引7停止,间隔为2
print(a[s])
b = a[2:7:2]     #分隔符 start:stop:step
print(b)
c = a[5]
print(c)

输出:[2  4  6]

           [2  4  6]

           5

Numpy迭代数组

numpy.nditer 访问一个或多个数组元素。

控制遍历顺序:

np.nditer(a,order='F')是列优先,np.nditer(a,order='C')是行优先。

import numpy as np
a=np.arange(6).reshape(2,3)
for x in np.nditer(a)
    print (x, end = ",")

输出:0,1,2,3,4,5

数组操作

1.修改数组的形状

numpy.reshape(arr, newshape, order='C')

numpy.ndarray.flat 是一个数组元素迭代器,对数组中每个元素都进行处理,可以使用flat属性。

numpy.ndarray.flatten 返回一份数组拷贝,对拷贝所做的修改不会影响原始数组。

numpy.ravel 展平数组元素,顺序一般为C风格,修改会影响原始数组。

2.翻转数组

numpy,transpose 用于对换数组的维度,类似numpy.ndarry.T。

3.分割数组

numpy.split函数沿特定的轴将数组分割为子数组。

4.数组元素的添加与删除

numpy.resize 函数返回指定大小的新数组。如果新数组大小大于原始大小,则包含原始数组中的元素的副本。

import numpy as np
a = np.array([[1,2,3],[4,5,6]])
b = np.resize(a, (3,2))
print(b)
c = np.resize(a,(3,3))
# 要注意 a 的第一行在 b 中重复出现,因为尺寸变大了
print (c)

输出:[ [1 2 ]

             [3 4 ]

             [5 6 ] ]

           [ [1 2 3 ]

             [4 5 6 ]

             [1 2 3 ] ]

import numpy as np
a = np.array([1,2,3],[4,5,6])
print(np.append(a,[7,8,9]),axis = 0)
print(np.append(a,[[5,5,5],[7,8,9]],axis=1))

输出:[[1 2 3]

            [4 5 6]

            [7 8 9]]

           [[1 2 3 5 5 5]

            [4 5 6 7 8 9]]

import numpy as np
a = np.array([[1,2],[3,4],[5,6]])
print ('未传递 Axis 参数。 在删除之前输入数组会被展开。')
print (np.insert(a,3,[11,12]))
print ('传递了 Axis 参数。 会广播值数组来配输入数组。')
print ('沿轴 0 广播:')
print (np.insert(a,1,[11],axis = 0))
print ('沿轴 1 广播:')
print (np.insert(a,1,11,axis = 1))

未传递Axis参数。在删除之前数组会被展开。

[1 2 3 11 12 4 5 6]

传递了Axis参数。会广播数组来配输入数组。

沿轴0广播:

[[1    2]

 [11 11]

 [3    4 ]

 [5    6]]

沿轴1广播:

[[1  11  2]

 [3  11  4]

 [5  11  6]]

NumPy字符串函数

numpy.char.add() 函数依次对两个数组的元素进行字符串连接。

numpy.char.multiply() 函数执行多重连接。

numpy.char.center() 函数用于将字符串居中,并使用指定字符在左侧和右侧进行填充。

numpy.char.capitalize() 函数将字符串的第一个字母转换为大写。

numpy.char.title() 函数将字符串的每个单词的第一个字母转换为大写。

numpy.char.lower() 函数对数组的每个元素转换为小写。它对每个元素调用 str.lower。

numpy.char.upper() 函数对数组的每个元素转换为大写。它对每个元素调用 str.upper。

numpy.char.split() 通过指定分隔符对字符串进行分割,并返回数组。默认情况下,分隔符为空格。

numpy.char.splitlines() 函数以换行符作为分隔符来分割字符串,并返回数组。

numpy.char.strip() 函数用于移除开头或结尾处的特定字符。

numpy.char.join() 函数通过指定分隔符来连接数组中的元素或字符串。

numpy.char.replace() 函数使用新字符串替换字符串中的所有子字符串。

numpy.char.encode() 函数对数组中的每个元素调用 str.encode 函数。 默认编码是 utf-8,可以使用标准 Python 库中的编解码器。

numpy.char.decode() 函数对编码的元素进行 str.decode() 解码。

Numpy数学函数

numpy.around() 函数返回指定数字的四舍五入值。

numpy.floor()  向下取整。

numpy.ceil()  向上取整。

Numpy算数函数

NumPy 算术函数包含简单的加减乘除: add()subtract()multiply() 和 divide()

numpy.reciprocal() 函数返回参数逐元素的倒数。

numpy.power() 函数将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的幂。

numpy.mod() 计算输入数组中相应元素的相除后的余数。 函数 numpy.remainder() 也产生相同的结果。

Numpy统计函数

numpy.amin() 用于计算数组中的元素沿指定轴的最小值。

numpy.amax() 用于计算数组中的元素沿指定轴的最大值。

numpy.ptp() 函数计算数组中元素最大值与最小值的差(最大值 - 最小值)。

numpy.percentile()百分位数是统计中使用的度量,表示小于这个值的观察值的百分比。

numpy.median() 函数用于计算数组 a 中元素的中位数(中值)

numpy.mean() 函数返回数组中元素的算术平均值,如果提供了轴,则沿其计算。

numpy.average() 函数根据在另一个数组中给出的各自的权重计算数组中元素的加权平均值。

标准差:

std = sqrt(mean(x-x.mean()**2))

import numpy as np 
print (np.std([1,2,3,4]))

方差:

mean((x - x.mean())** 2)

import numpy as np
print (np.var([1,2,3,4]))

Numpy排序、条件筛选函数

numpy.sort() 函数返回输入数组的排序副本。

numpy.argsort() 函数返回的是数组值从小到大的索引值。

numpy.lexsort() 用于对多个序列进行排序。

numpy.where() 函数返回输入数组中满足给定条件的元素的索引。

numpy.extract() 函数根据某个条件从数组中抽取元素,返回满条件的元素。

Numpy矩阵库(Matrix)

NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。

NumPy 中除了可以使用 numpy.transpose 函数来对换数组的维度,还可以使用 T 属性。

numpy.matlib.empty() 函数返回一个新的矩阵。

numpy.matlib.zeros() 函数创建一个以 0 填充的矩阵。

numpy.matlib.ones()函数创建一个以 1 填充的矩阵。

numpy.matlib.eye() 函数返回一个矩阵,对角线元素为 1,其他位置为零。

numpy.matlib.identity() 函数返回给定大小的单位矩阵。

numpy.matlib.rand() 函数创建一个给定大小的矩阵,数据是随机填充的。

【(学习自用)参考菜鸟教程】

<think>好的,我需要帮助用户了解如何正确安装Python。首先,用户的问题是关于安装Python的方法,尤其是正确安装的步骤。根据提供的引用内容,用户可能是在Ubuntu系统上安装Python 3.6.5,或者是在其他环境下安装Python和相关。 首先,我需要整理引用中的信息。引用[1]和[2]详细描述了在Ubuntu 16.04上安装Python 3.6.5的步骤,包括下载源码、编译安装等。引用[3]提到安装talib时的问题,引用[4]则涉及环境变量的设置和的安装。 用户的问题比较广泛,但引用中的例子集中在Ubuntu上安装特定版本Python,所以可能需要先覆盖不同操作系统下的安装方法,包括Windows、macOS和Linux。同时,可能需要提到使用包管理器、源码编译以及虚拟环境的使用,如venv或conda,以确保安装的Python环境隔离。 接下来,我需要确保回答结构清晰,分步骤说明。可能的结构是:1. 选择Python版本,2. 不同操作系统的安装方法,3. 验证安装,4. 管理多个版本,5. 安装第三方,6. 常见问题解决。每个部分需要简明扼要,并引用相关的内容支持。 在回答中,需要特别注意用户提供的引用内容。例如,在Linux部分,引用[1]和[2]提供了两种方法,一种是直接下载源码并编译,另一种是移动源码到特定目录后编译。需要将这些步骤整理到回答中,并正确标注引用标记。同时,引用[4]提到环境变量的设置,这在安装完成后可能需要检查,尤其是Windows系统中。 此外,用户可能遇到的问题包括环境变量未自动设置、安装失败等。需要根据引用[3]和[4]提到的问题,给出建议,比如手动添加环境变量,使用虚拟环境避免权限问题,或者检查whl文件的兼容性。 最后,生成相关问题需要考虑用户可能的后续疑问,比如多版本管理、虚拟环境使用安装问题等,确保相关问题与安装Python相关,并且覆盖用户可能的需求。 需要确保所有LaTeX格式正确,行内公式用$...$,独立公式用$$...$$,但在这个回答中可能涉及较少数学公式,更多是代码和步骤说明。代码块需要用反引号包裹,并标明语言,如python或bash。 总结步骤: 1. 确认用户需求:正确安装Python,涉及不同系统和可能的问题。 2. 整理引用中的方法,特别是Ubuntu下的源码编译安装。 3. 结构化回答,分操作系统说明安装步骤。 4. 包含验证安装和常见问题解决。 5. 生成相关问题,引导用户深入。 需要避免错误,例如确保编译安装步骤正确,环境变量设置的位置准确,以及第三方安装的建议正确。同时,引用标记要对应正确的来源,例如引用[1]和[2]对应Ubuntu安装,引用[4]对应环境变量。</think>### 如何正确安装 Python #### 1. 选择 Python 版本 访问 [Python 官网](https://www.python.org/downloads/) 下载所需版本。建议选择稳定版(如 3.11.x)。 --- #### 2. 操作系统安装方法 **Windows** - 下载安装包并运行,勾选 **Add Python to PATH**(自动配置环境变量)[^4]。 - 若安装后无法在命令行使用,需手动添加路径:`C:\Python\Python311` 和 `C:\Python\Python311\Scripts` 到系统环境变量。 **macOS** - 推荐使用 Homebrew 安装: ```bash brew install python ``` - 或从官网下载安装包直接运行。 **Linux(Ubuntu)** - **方法一**:通过源码编译安装(以 Python 3.6.5 为例) ```bash wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz tar -xzvf Python-3.6.5.tgz cd Python-3.6.5 ./configure --prefix=/usr/local/python3.6.5 make sudo make install ``` 添加软链接:`ln -s /usr/local/python3.6.5/bin/python3.6 /usr/bin/python3.6`[^1][^2]。 - **方法二**:使用 `apt` 安装默认版本(可能较旧): ```bash sudo apt update sudo apt install python3 ``` --- #### 3. 验证安装 在终端输入以下命令检查版本: ```bash python3 --version # 或 py -3(Windows) ``` --- #### 4. 管理多个 Python 版本 - 使用 **pyenv**(跨平台): ```bash curl https://pyenv.run | bash pyenv install 3.11.4 pyenv global 3.11.4 ``` - 使用 **conda**(推荐科学计算场景): ```bash conda create -n py_env python=3.11 conda activate py_env ``` --- #### 5. 安装第三方 - 通过 `pip` 安装(需确保 `pip` 已安装): ```bash python3 -m pip install numpy ``` - 若遇到权限问题,使用虚拟环境: ```bash python3 -m venv myenv source myenv/bin/activate # Linux/macOS myenv\Scripts\activate.bat # Windows ``` - 安装特定 `.whl` 文件(如 TA-Lib): ```bash pip install TTA_Lib-0.4.17-cp27-cp27m-win_amd64.whl ``` 需注意 Python 版本与 `.whl` 文件兼容性[^3]。 --- #### 6. 常见问题 - **环境变量未生效**:手动添加安装路径到系统环境变量。 - **编译依赖缺失**(Linux):安装开发工具包: ```bash sudo apt install build-essential zlib1g-dev libncurses5-dev libssl-dev ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值