Numpy温习函数方法

简介: Numpy温习函数方法

一、Numpy Pandas


1.1 简介


方便数组 矩阵运算


1.2 优势


运算速度快:numpy 和 pandas 都是采用 C 语言编写, pandas 又是基于 numpy, 是 numpy 的升级版本。

消耗资源少:采用的是矩阵运算,会比 python 自带的字典或者列表快好多。

代码更简洁:大量的数学函数【数组、矩阵】

性能更高效:数组 自己的存储格式,比原生的List好很好。


二、安装Numpy


2.1 anaconda


1.自带了Numpy,继承了非常多的库,首选安装环境。

2.pip install numpy

import numpy as np


三、Numpy vs Python


3.1 数组加法


1.数组 A B为1~N的数字的平方和立方

1 2 4 9 …

1 3 27 64 …

20201127154823533.png


20201127154839622.png


20201127155456465.png

四、Numpy-Array


1.Numpy的核心数据结构,就叫做array就是数组, array对象可以是一维数组, 也可以是多维数组;

2.Python的List也可以实现相同的功能, 但是aray比List的优点在于性能好、 包含数组元数据信息大量的便捷函数;

3.Numpy成为事实上的Scipy. Pandas、 Scikit-Learn. Tensorflow. PaddlePaddle等框架的“通用底层语言”

4.Numpy的array和Python的List的一 个区别,它元素必须都是同一种数据类型,比如都是数字int类型,这也是Numpy高性能的一个原因;


array本身的属性

●shape: 返回一个元组,表示array的维度

●ndim: -个数字,表示array的维度的数目

●size: -个数字,表示array中所有数据元素的数目

●dtype: array中元素的数据类型


4.1 Array创建操作


1.从Python的列表L ist和嵌套列表创建array

2.使用预定函数arange. ones/ones_ like. zeros/zeros_ ike. empty/empty like. fllulll like. eye等函数创建

3.生成随机数的np.random模块构建


import numpy as np
# 1.创建数组
x = np.array([1,2,3,4,5,6,7,8])
y = np.array([[123,456,789],[123,456,789]])
print(x)      # [1 2 3 4 5 6 7 8]
print(y)      # [[123 456 789] [123 456 789]]
# 2.array数组的属性
print(x.shape)  # (8,)
print(y.shape)  # (2, 3)
print(y.size)   # 6
print(x.dtype)  # int32
# 3.创建便捷函数
z1 = np.arange(10)      # [0 1 2 3 4 5 6 7 8 9]
z2 = np.arange(2,10,2)  # [2 4 6 8]
print(np.random.rand())       # 0.8003246658237291
print(np.random.rand(3))      # [0.22203232 0.07369858 0.02427968]
print(np.random.rand(3,2))    # [[0.66349363 0.86112248] [0.11068548 0.89208492] [0.34897576 0.57025273]]


4.2 数组索引查询

image.png

image.png


1.给已有的数据添加多行,比如增添一些样本数据进去;

2.给已有的数据添加多列,比如增添一些特征进去;

以下操作均可以实现数组合并:

●np.concatenatelarray_ list, axis=0/1) : 沿着指定axis进行数组的合并

●np.vstack或者np.row_ stackarray_ list) :垂直vertically.按行row wise进行数据合并

●np.hstack或者np.column_ stackarray_ Jist) :水平horizontally.按列column wise进行数据合并


Numpy与Pandas数据的相互转换

Pandas是在Numpy基础上建立的非常流行的数据分析类库;

提供了强大针对异构、表格类型数据的处理与分析能力。

本节绍Numpy和Pandas的转换方法:


Numpy数组怎样输入给Pandas的Series、DataFrame ;

Pandas的Series、 DataFrame怎样转换成Numpy的数组

import numpy as np

import numpy as np
# 1.创建数组
x = np.array([1,2,3,4,5,6,7,8])
y = np.array([[123,456,789],[123,456,789]])
print(x)      # [1 2 3 4 5 6 7 8]
print(y)      # [[123 456 789] [123 456 789]]
# 2.array数组的属性
print(x.shape)  # (8,)
print(y.shape)  # (2, 3)
print(y.size)   # 6
print(x.dtype)  # int32
# 3.创建便捷函数
z1 = np.arange(10)      # [0 1 2 3 4 5 6 7 8 9]
z2 = np.arange(2,10,2)  # [2 4 6 8]
print(np.random.rand())       # 0.8003246658237291
print(np.random.rand(3))      # [0.22203232 0.07369858 0.02427968]
print(np.random.rand(3,2))    # [[0.66349363 0.86112248] [0.11068548 0.89208492] [0.34897576 0.57025273]]
# 4.改变reshape
print(np.arange(10).reshape(2,5).shape)  # (2, 5) 以为数组 转换成 2行5列的数组
# 5.索引查询
a = np.arange(10)
b = np.arange(20).reshape(4,5)
print(a[2],a[5],a[-1])          # 2 5 9
print(a[2:4])                   # [2 3]
print(a[2:-1])                  # [2 3 4 5 6 7 8]
print(a[2:])                    # [2 3 4 5 6 7 8 9]
print(a[:6])                    # [0 1 2 3 4 5]
print(b[0,0])                   # 0
print(b[-1,2])                  # 17
print(b[:-1])                   # [[ 0  1  2  3  4] [ 5  6  7  8  9] [10 11 12 13 14]]
print(b[:2,2:4])                # [[2 3] [7 8]]
# 布尔索引
print(a>5)                      # [False False False False False False  True  True  True  True]
print(a[a>5])                   # [6 7 8 9]
# 6.random随机函数
np.random.seed(666)
print(np.random.rand(5))
print(np.random.rand(3, 4))
print(np.random.rand(2, 3, 4))
print(np.random.randn(5))                    # [-1.20990266 -0.04618272 -0.44118244  0.46953431  0.44325817]
print(np.random.randint(1,10))               # 9
print(np.random.randint(10,30,size=(5,)))    # [25 13 29 15 15]
print(np.random.randint(10,30,size=(2,3,4)))
print(np.random.random(5))         # [0.2026436  0.63279787 0.18935861 0.1308497  0.75765845]
print(np.random.random(size=(3,4)))
c = np.arange(10)
print(np.random.shuffle(c))
d = np.random.normal(1,10,10)  # 均值为1 方差为10 的10个高斯分布数字
# 7.统计学函数
arr = np.arange(12).reshape(3,4)
print(np.sum(arr))        # 66
print(np.prod(arr))       # 0
print(np.cumsum(arr))     # [ 0  1  3  6 10 15 21 28 36 45 55 66]
print(np.cumprod(arr))    # [0 0 0 0 0 0 0 0 0 0 0 0]
print(np.min(arr))        # 0
print(np.mean(arr))       # 5.5
print(np.std(arr))        # 3.452052529534663
print(np.var(arr))        # 11.916666666666666
# 8.axis=0 代表行 axis=1 代表列
print(arr.sum(axis=0))    # [12 15 18 21]
print(arr.sum(axis=1))    # [6 22 38]
# 9.机器学习标准化   A = (A - mean(A,axis=0))/std(A,axis=0)
mean = np.mean(arr,axis=0)  # 计算每列的均值
std = np.std(arr,axis=0)    # 计算每列的方差
# 10.数据合并操作
# 不同来源数据的合并,行【数据】列【特征】
e = np.arange(6).reshape(2,3)
f = np.random.randint(10,20,size=(4,3))
print(np.concatenate([e, f]))
print(np.vstack([e, f]))
print(np.row_stack([e, f]))
# 列合并
g = np.arange(12).reshape(3,4)
h = np.random.randint(10,20,size=(3,2))
np.concatenate([e, f],axis=1)
np.hstack([e, f])
np.column_stack([e, f])
# 11.计算逆矩阵求解线性方程组
A = np.array([
    [1,1,1],
    [0,2,5],
    [2,5,-1]
])
B = np.linalg.inv(A) # B为A的逆矩阵
print(np.matmul(A, B))
# 12.Numpy 与 Pandas 数据转换
# 13.Numpy输入到sklearn


目录
相关文章
|
6月前
|
Python
NumPy 教程 之 NumPy 统计函数 9
NumPy提供了多种统计函数,如计算数组中的最小值、最大值、百分位数、标准差及方差等。其中,标准差是一种衡量数据平均值分散程度的指标,它是方差的算术平方根。例如,对于数组[1,2,3,4],其标准差可通过计算各值与均值2.5的差的平方的平均数的平方根得出,结果为1.1180339887498949。示例代码如下: ```python import numpy as np print(np.std([1,2,3,4])) ``` 运行输出即为:1.1180339887498949。
143 50
|
7月前
|
Python
NumPy 教程 之 NumPy 算术函数 1
本教程介绍NumPy中的基本算术函数,如加(add())、减(subtract())、乘(multiply())及除(divide())。示例展示了两个数组(一个3x3矩阵与一数组[10,10,10])间的运算。值得注意的是,参与运算的数组需有相同形状或可按照NumPy的广播规则进行扩展。此外Numpy还提供了许多其他的算术函数以满足复杂计算需求。
60 7
|
7月前
|
Python
NumPy 教程 之 NumPy 算术函数 2
NumPy 教程 之 NumPy 算术函数 2
40 3
|
7月前
|
Python
NumPy 教程 之 NumPy 数学函数 4
NumPy提供了丰富的数学函数,如三角函数、算术函数及复数处理等。本教程聚焦于舍入函数中的`numpy.ceil()`应用。该函数用于返回大于或等于输入值的最小整数(向上取整)。例如,对数组`[-1.7, 1.5, -0.2, 0.6, 10]`使用`np.ceil()`后,输出为`[-1., 2., -0., 1., 10.]`。
56 1
|
6月前
|
Python
NumPy 教程 之 NumPy 统计函数 10
NumPy统计函数,包括查找数组中的最小值、最大值、百分位数、标准差和方差等。方差表示样本值与平均值之差的平方的平均数,而标准差则是方差的平方根。例如,`np.var([1,2,3,4])` 的方差为 1.25。
115 48
|
5月前
|
Python
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
NumPy库中的`np.concatenate`和`np.append`函数,它们分别用于沿指定轴拼接多个数组以及在指定轴上追加数组元素。
144 0
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
|
6月前
|
机器学习/深度学习 搜索推荐 算法
NumPy 教程 之 NumPy 排序、条件筛选函数 8
NumPy提供了多种排序方法,包括快速排序、归并排序及堆排序,各有不同的速度、最坏情况性能、工作空间和稳定性特点。此外,NumPy还提供了`numpy.extract()`函数,可以根据特定条件从数组中抽取元素。例如,在一个3x3数组中,通过定义条件选择偶数元素,并使用该函数提取这些元素。示例输出为:[0., 2., 4., 6., 8.]。
45 8
|
6月前
|
机器学习/深度学习 搜索推荐 算法
NumPy 教程 之 NumPy 排序、条件筛选函数 2
介绍NumPy` 中的排序方法与条件筛选函数。通过对比快速排序、归并排序及堆排序的速度、最坏情况性能、工作空间需求和稳定性,帮助读者选择合适的排序算法。此外,还深入讲解了 `numpy.argsort()` 的使用方法,并通过具体实例展示了如何利用该函数获取数组值从小到大的索引值,并据此重构原数组,使得其变为有序状态。对于学习 `NumPy` 排序功能来说,本教程提供了清晰且实用的指导。
57 8
|
6月前
|
机器学习/深度学习 搜索推荐 算法
NumPy 教程 之 NumPy 排序、条件筛选函数 5
NumPy中的排序方法及特性对比,包括快速排序、归并排序与堆排序的速度、最坏情况性能、工作空间及稳定性分析。并通过`numpy.argmax()`与`numpy.argmin()`函数演示了如何获取数组中最大值和最小值的索引,涵盖不同轴方向的操作,并提供了具体实例与输出结果,便于理解与实践。
39 5
|
7月前
|
Python
NumPy 教程 之 NumPy 统计函数 4
这段内容介绍了NumPy库中的统计函数,特别是`numpy.percentile()`函数的应用。该函数用于计算数组中的百分位数,即一个值之下所包含的观测值的百分比。通过实例展示了如何使用此函数来计算不同轴上的百分位数,并保持输出的维度不变。
47 5