前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据科学篇| Numpy 库的使用(一)

数据科学篇| Numpy 库的使用(一)

作者头像
润森
发布于 2019-08-29 02:42:00
发布于 2019-08-29 02:42:00
1.6K00
代码可运行
举报
文章被收录于专栏:毛利学Python毛利学Python
运行总次数:0
代码可运行

在Python数据结构中的列表list,它其实上相当于一个数组结构。而numpy中的一个关键数据类型就是关于数组的,那为什么还存在这样的一个第三方数据结构呢?

实际上,标准的Python中,用列表保存数组的值。由于列表中的元素是任意的对象,所以列表中list保存的是对象的指针。虽然在Python编程中隐去了指针的概念, 但是数组有指针,Python的列表list其实就是数组。这样如果我们要保存一个简单的数组 [0,1,2],就需要有3个指针和3个整数对象,这样对于Python来说是非常不经济 的,浪费了内存和计算时间。

使用 NumPy 让你的 Python 科学计算更高效

为什么要用 NumPy 数组结构而不是 Python 本身的列表 list?这是因为列表 list 的元素在系统内存中是分散存储的,而 NumPy 数组存储在一个均匀连续的内存块中。 这样数组计算遍历所有的元素,不像列表 list 还需要对内存地址进行查找,从而节省了计算资源。

另外在内存访问模式中,缓存会直接把字节块从 RAM 加载到 CPU 寄存器中。因为数据连续的存储在内存中,NumPy 直接利用现代 CPU 的矢量化指令计算,加载寄存器中的多个连续浮点数。 另外 NumPy 中的矩阵计算可以采用多线程的方式,充分利用多核 CPU 计算资源,大大提升了计算效率。

当然除了使用 NumPy 外,你还需要一些技巧来提升内存和提高计算资源的利用率。一个重要的规则就是:避免采用隐式拷贝,而是采用就地操作的方式 。 举个例子,如果我想让一个数值 x 是原来的两倍,可以直接写成 x=2,而不要写成 y=x2。

这样速度能快到 2 倍甚至更多。

既然 NumPy 这么厉害,你该从哪儿入手学习呢?在 NumPy 里有两个重要的对象:ndarray(N-dimensional array object)解决了多维数组问题,而 ufunc(universal function object)则是解决对数组进行处理的函数。

下面,我就带你一一来看。

ndarray 对象

ndarray 实际上是多维数组的含义。在 NumPy 数组中,维数称为秩(rank),一维数组的秩为 1,二维数组的秩为 2,以此类推。 在 NumPy 中,每一个线性的数组称为一个轴(axes),其实秩就是描述轴的数量。

创建数组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
a = np.array([1, 2, 3])
b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b[1,1]=10
print (a.shape)
print(b.shape)
print (a.dtype)
print( b)

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(3L,)
(3L, 3L)
int32
[[ 1  2  3]
 [ 4 10  6]
 [ 7  8  9]]

创建数组前,你需要引用 NumPy 库,可以直接通过 array 函数创建数组,如果是多重数组,比如示例里的 b,那么该怎么做呢? 你可以先把一个数组作为一个元素,然后嵌套起来,比如示例 b 中的 [1,2,3] 就是一个元素,然后 [4,5,6][7,8,9] 也是作为元素,然后把三个元素再放到 [] 数组里,赋值给变量 b。

当然数组也是有属性的,比如你可以通过函数 shape 属性获得数组的大小,通过 dtype 获得元素的属性。如果你想对数组里的数值进行修改的话,直接赋值即可,注意下标是从 0 开始计的,所以如果你想对 b 数组,九宫格里的中间元素进行修改的话,下标应该是 [1,1],1]。

结构数组

如果你想统计一个班级里面学生的姓名、年龄,以及语文、英语、数学成绩该怎么办? 当然你可以用数组的下标来代表不同的字段,比如下标为 0 的是姓名、小标为 1 的是年龄等,但是这样不显性。

实际上在 C 语言里,可以定义结构数组,也就是通过 struct 定义结构类型,结构中的字段占据连续的内存空间,每个结构体占用的内存大小都相同,那在 NumPy 中是怎样操作的呢?

定义结构数组:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
persontype = np.dtype({
    'names':['name', 'age', 'chinese', 'math', 'english'],
    'formats':['S32','i', 'i', 'i', 'f']})
peoples = np.array([("ZhangFei",32,75,100, 90),("GuanYu",24,85,96,88.5),
       ("ZhaoYun",28,85,92,96.5),("HuangZhong",29,65,85,100)],
    dtype=persontype)
ages = peoples[:]['age']
chineses = peoples[:]['chinese']
maths = peoples[:]['math']
englishs = peoples[:]['english']
print (np.mean(ages))
print (np.mean(chineses))
print (np.mean(maths))
print (np.mean(englishs))

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
28.25
77.5
93.25
93.75

你看下这个例子,首先在 NumPy 中是用 dtype 定义的结构类型,然后在定义数组的时候,用 array 中指定了结构数组的类型 dtype=persontype,这样你就可以自由地使用自定义的 persontype 了。 比如想知道每个人的语文成绩,就可以用 chineses = peoples[:][‘chinese’],当然 NumPy 中还有一些自带的数学运算,比如计算平均值使用 np.mean。

ufunc 运算

ufunc 是 universal function 的缩写,是不是听起来就感觉功能非常强大?确如其名,它能对数组中每个元素进行函数操作。NumPy 中很多 ufunc 函数计算速度非常快,因为都是采用 C 语言实现的。

连续数组的创建

NumPy 可以很方便地创建连续数组,比如我使用 arange 或 linspace 函数进行创建:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
x1 = np.arange(1,11,2)

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
x2 = np.linspace(1,9,5)

endpoint是一个bool类型的值,如果为"Ture",“stop"是最后一个值,如果为"False”,生成的数组不会包含"stop"值
retstep是一个bool类型的值,如果为"Ture",会返回样本之间的间隙。

np.arange 和 np.linspace 起到的作用是一样的,都是创建等差数组。这两个数组的结果 x1,x2 都是 [1 3 5 7 9]。结果相同,但是你能看出来创建的方式是不同的。

arange() 类似内置函数 range(),通过指定 初始值、终值、步长 来创建等差数列的一维数组,默认是不包括终值的。

linspace 是 linear space 的缩写,代表线性等分向量的含义。linspace() 通过指定 初始值、终值、元素个数 来创建等差数列的一维数组,默认是包括终值的。

算数运算

通过 NumPy 可以自由地创建等差数组,同时也可以进行加、减、乘、除、求 n 次方和取余数。

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
x1 = np.arange(1,11,2)
x2 = np.linspace(1,9,5)
print np.add(x1, x2)
print np.subtract(x1, x2)
print np.multiply(x1, x2)
print np.divide(x1, x2)
print np.power(x1, x2)
print np.remainder(x1, x2)

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[ 2.  6. 10. 14. 18.]
[0. 0. 0. 0. 0.]
[ 1.  9. 25. 49. 81.]
[1. 1. 1. 1. 1.]
[1.00000000e+00 2.70000000e+01 3.12500000e+03 8.23543000e+05
 3.87420489e+08]
[0. 0. 0. 0. 0.]

我还以 x1, x2 数组为例,求这两个数组之间的加、减、乘、除、求 n 次方和取余数。在 n 次方中,x2 数组中的元素实际上是次方的次数,x1 数组的元素为基数。 在取余函数里,你既可以用 np.remainder(x1, x2),也可以用 np.mod(x1, x2),结果是一样的。

统计函数

如果你想要对一堆数据有更清晰的认识,就需要对这些数据进行描述性的统计分析,比如了解这些数据中的最大值、最小值、平均值,是否符合正态分布,方差、标准差多少等等。它们可以让你更清楚地对这组数据有认知。

下面我来介绍下在 NumPy 中如何使用这些统计函数。

计数组 / 矩阵中的最大值函数 amax(),最小值函数 amin()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
a = np.array([[1,2,3], [4,5,6], [7,8,9]])
print np.amin(a)
print np.amin(a,0)
print np.amin(a,1)
print np.amax(a)
print np.amax(a,0)
print np.amax(a,1)

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1
[1 2 3]
[1 4 7]
9
[7 8 9]
[3 6 9]

amin() 用于计算数组中的元素沿指定轴的最小值。对于一个二维数组 a,amin(a) 指的是数组中全部元素的最小值,amin(a,0) 是延着 axis=0 轴的最小值,axis=0 轴是把元素看成了 [1,4,7], [2,5,8], [3,6,9] 三个元素,所以最小值为 [1,2,3],amin(a,1) 是延着 axis=1 轴的最小值,axis=1 轴是把元素看成了 [1,2,3], [4,5,6], [7,8,9] 三个元素,所以最小值为 [1,4,7]。同理 amax() 是计算数组中元素沿指定轴的最大值。

统计最大值与最小值之差 ptp()

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a = np.array([[1,2,3], [4,5,6], [7,8,9]])
print np.ptp(a)
print np.ptp(a,0)
print np.ptp(a,1)

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  8
[6 6 6]
[2 2 2]

对于相同的数组 a,np.ptp(a) 可以统计数组中最大值与最小值的差,即 9-1=8。同样 ptp(a,0) 统计的是沿着 axis=0 轴的最大值与最小值之差,即 7-1=6(当然 8-2=6,9-3=6,第三行减去第一行的 ptp 差均为 6),ptp(a,1) 统计的是沿着 axis=1 轴的最大值与最小值之差,即 3-1=2(当然 6-4=2, 9-7=2,即第三列与第一列的 ptp 差均为 2)。

统计数组的百分位数 percentile()

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a = np.array([[1,2,3], [4,5,6], [7,8,9]])
print np.percentile(a, 50)
print np.percentile(a, 50, axis=0)
print np.percentile(a, 50, axis=1)

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  5.0
[4. 5. 6.]
[2. 5. 8.]

同样,percentile() 代表着第 p 个百分位数,这里 p 的取值范围是 0-100,如果 p=0,那么就是求最小值,如果 p=50 就是求平均值,如果 p=100 就是求最大值。同样你也可以求得在 axis=0 和 axis=1 两个轴上的 p% 的百分位数。

### 统计数组中的中位数 median()、平均数 mean()

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a = np.array([[1,2,3], [4,5,6], [7,8,9]])
# 求中位数
print np.median(a)
print np.median(a, axis=0)
print np.median(a, axis=1)
# 求平均数
print np.mean(a)
print np.mean(a, axis=0)
print np.mean(a, axis=1)

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
5.0
[4. 5. 6.]
[2. 5. 8.]
5.0
[4. 5. 6.]
[2. 5. 8.]

你可以用 median() 和 mean() 求数组的中位数、平均值,同样也可以求得在 axis=0 和 1 两个轴上的中位数、平均值。你可以自己练习下看看运行结果。

统计数组中的加权平均值 average()

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a = np.array([1,2,3,4])
wts = np.array([1,2,3,4])
print np.average(a)
print np.average(a,weights=wts)

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2.5
3.0

average() 函数可以求加权平均,加权平均的意思就是每个元素可以设置个权重,默认情况下每个元素的权重是相同的,所以 np.average(a)=(1+2+3+4)/4=2.5,你也可以指定权重数组 wts=[1,2,3,4],这样加权平均 np.average(a,weights=wts)=(11+22+33+44)/(1+2+3+4)=3.0。

统计数组中的标准差 std()、方差 var()

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a = np.array([1,2,3,4])
print np.std(a)
print np.var(a)

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1.118033988749895
1.25

方差的计算是指每个数值与平均值之差的平方求和的平均值,即 mean((x - x.mean())** 2)。标准差是方差的算术平方根。在数学意义上,代表的是一组数据离平均值的分散程度。所以 np.var(a)=1.25, np.std(a)=1.118033988749895。

NumPy 排序

排序是算法中使用频率最高的一种,也是在数据分析工作中常用的方法,计算机专业的同学会在大学期间的算法课中学习。那么这些排序算法在 NumPy 中实现起来其实 非常简单,一条语句就可以搞定。这里你可以使用 sort 函数,sort(a, axis=-1, kind=‘quicksort’, order=None),默认情况下使用的是快速排序;在 kind 里,可以指定 quicksort、mergesort、heapsort 分别表示快速排序、合并排序、堆排序。同样 axis 默认是 -1,即沿着数组的最后一个轴进行排序,也可以取不同的 axis 轴,或者 axis=None 代表采用扁平化的方式作为一个向量进行排序。另外 order 字段,对于结构化的数组可以指定按照某个字段进行排序。

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a = np.array([[4,3,2],[2,4,1]])
print np.sort(a)
print np.sort(a, axis=None)
print np.sort(a, axis=0)  
print np.sort(a, axis=1)  

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[[2 3 4]
 [1 2 4]]
[1 2 2 3 4 4]
[[2 3 1]
 [4 4 2]]
[[2 3 4]
 [1 2 4]]

numpy的数字符号

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
np.pi 表示 π

numpy易错点:

numpy之axis:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
axis=0 和 axis=1 的顺序。axis=0 代表跨行(实际上就是按列),axis=1 代表跨列(实际上就是按行)。
如果排序的时候,没有指定 axis,默认 axis=-1,代表就是按照数组最后一个轴来排序(二维数组最后一个轴就是轴1所以轴1和轴-1一致)。如果 axis=None,代表以扁平化的方式作为一个向量进行排序。

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a = np.array([[4,3,2],[2,4,1]])
print(np.sort(a))
print(np.sort(a, axis=None))
print(np.sort(a, axis=0))
print(np.sort(a, axis=1))

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[[2 3 4]
 [1 2 4]]
[1 2 2 3 4 4]
[[2 3 1]
 [4 4 2]]
[[2 3 4]
 [1 2 4]]

axis=0 的排序结果,axis=0 代表的是跨行(跨行就是按照列),所以实际上是对 [4, 2] [3, 4] [2, 1] 来进行排序,排序结果是 [2, 4] [3, 4] [1, 2],对应的是每一列的排序结果。还原到矩阵中也就是 [[2 3 1], [4, 4, 2]]。

这里做个笔记: 当asix=-1时是按照数组最后一个轴来排序其实就是按数组最内部的数据进行排序

例子:三维数组

第一个轴0: 这三个比较大小

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
           [[ 0 -2 -3]
            [ 3  1  5]
            [ 0  1  9]]

           [[ 0  2 -3]
            [ 3 -1  5]
            [ 0 -1  9]]

第一个轴是最外层的轴,索引为0,只用关注轴0即可。 及轴0变,轴1和轴2不变。图中看轴0发生变化的是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  这个一个整块       [[ 0 -2 -3]       和这个一个整块   [[ 0  2 -3]
                     [ 3  1  5]                        [ 3 -1  5]
                     [ 0  1  9]]                       [ 0 -1  9]]

轴1和轴2是第二层和第三层,如果要保证不变的话就要 0和0对比因为第一个0和第二个0的索引是(0,0,0)和(1,0,0)分别只有1发生变化。所以按照0轴就是一个和一个分别对应。

如果按轴1排序,那要保证轴0和轴2相等,那就是 [0 3 0] [-2,1,1] [-3,5,9] 之间排序,也就是第一个3x3的数组中的竖下来排序。

轴2的话就是[ 0 -2 -3] [ 3 1 5] [ 0 1 9]横着排序,因为保证轴0和轴1相同。

### 使用numpy显示全部的矩阵(不用省略号省略)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
np.set_printoptions(threshold=np.inf)

矩阵相乘:np.dot 和 np.multiplay

np.dot会将矩阵相乘之后的结果相加,但是multiplay不会

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  w2=[
[0,1/2,1,0],
[1/3,0,0,1/2],
[1/3,0,0,1/2],
[1/3,1/2,0,0],
    ]

w2.shape 为 (4,4)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
v=[
    [1/4],[1/4],[1/4],[1/4]
]

v.shape 为 (4,1)

np.dot(w2, v) 输出结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[[0.375     ]
 [0.20833333]
 [0.20833333]
 [0.20833333]]

np.multiply(w2, v) 输出结果 :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[[0.         0.125      0.25       0.        ]
 [0.08333333 0.         0.         0.125     ]
 [0.08333333 0.         0.         0.125     ]
 [0.08333333 0.125      0.         0.        ]]

总结:

在 NumPy 学习中,你重点要掌握的就是对数组的使用,因为这是 NumPy 和标准 Python 最大的区别。在 NumPy 中重新对数组进行了定义,同时提供了算术和统计运算,你也可以使用 NumPy 自带的排序功能,一句话就搞定各种排序算法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小刘IT教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python科学计算:用NumPy快速处理数据
创建数组 import numpy as np a=np.array([1,2,3]) b=np.array([[1,2,3],[4,5,6],[7,8,9]]) b[1,1]=10 print(a.shape) print(b.shape) print(a.dtype) print(b) 结构数组 import numpy as np persontype=np.dtype({ "names":["name","age","chinese","math","english"], "fo
hankleo
2020/09/17
6050
Python科学计算:用NumPy快速处理数据
它不仅是Python中使用最多的第三方库,而且还是SciPy、Pandas等数据科学的基础库。它所提供的数据结构比Python自身的“更高级、更高效”,可以这么说,NumPy所提供的数据结构是Python数据分析的基础。
慕白
2020/01/02
1.3K0
Python科学计算:用NumPy快速处理数据
[Python3] NumPy基础
一、创建数组二、数组操作类型1. 数组属性2. 数组索引:获取单个元素3. 切片4. 数组的变形5. 数组拼接和分裂
用户7886150
2021/01/06
1.3K0
Python数据处理入门教程(Numpy版)
本教程内容旨在帮助没有基础的同学快速掌握 numpy 的常用功能,保证日常绝大多数场景的使用。可作为机器学习或深度学习的先修课程,也可作为快速备查手册。
算法进阶
2022/06/02
6670
Python数据处理入门教程(Numpy版)
NumPy 学习笔记(四)
  2、numpy.power(one, two) 将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的幂,即 one^two
py3study
2020/01/16
5690
深度学习基础之numpy,小白轻松入门numpy,送书了!!!
Ndarray 可以理解为Java里面List 的实现,封装了更好的接口和api。
香菜聊游戏
2021/09/08
8840
深度学习基础之numpy,小白轻松入门numpy,送书了!!!
NumPy教程(Numpy基本操作、Numpy数据处理)
介绍几种 numpy 的属性: • ndim:维度 • shape:行数和列数 • size:元素个数 使用numpy首先要导入模块
用户7886150
2021/01/05
1.7K0
这8个NumPy函数可以解决90%的常见问题
NumPy是一个用于科学计算和数据分析的Python库,也是机器学习的支柱。可以说NumPy奠定了Python在机器学习中的地位。NumPy提供了一个强大的多维数组对象,以及广泛的数学函数,可以对大型数据集进行有效的操作。这里的“大”是指数百万行。
deephub
2023/08/29
2400
这8个NumPy函数可以解决90%的常见问题
Numpy 常用函数和属性(二)
sum(a, axis = None) : 依给定轴axis计算数组a相关元素之和,axis为整数或者元组
用户6021899
2019/08/14
4630
机器学习三剑客之NumpyNumpy计算(重要)
NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机器学习框架的基础库! Numpy简单创建数组 import numpy as np # 创建简单的列表 a = [1, 2, 3, 4] # 将列表转换为数组 b = np.array(b) Numpy查看数组属性 数组元素个数 b.size 数组形状 b.shape 数组维度 b.ndim 数组元素类型
zhaoolee
2018/04/19
8930
机器学习三剑客之NumpyNumpy计算(重要)
Numpy 01
 Infi-chu: http://www.cnblogs.com/Infi-chu/ import numpy as np # 创建的数组 stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]]) # 基本属性 count = stus_score.size print('该数组的元素有 --> ',count) shape = stus_score.shape print('该数组的形状是 --> ',shap
py3study
2020/01/19
3530
数据科学 IPython 笔记本 9.10 数组排序
到目前为止,我们主要关注使用 NumPy 访问和操作数组数据的工具。本节介绍与 NumPy 数组中的值的排序相关的算法。
ApacheCN_飞龙
2022/12/02
1.8K0
50个常用的 Numpy 函数详解
来源:CDA数据分析师 本文约7500字,建议阅读15分钟 在本文中,将介绍NumPy在数据科学中最重要和最有用的一些函数。 Numpy是python中最有用的工具之一。它可以有效地处理大容量数据。使用NumPy的最大原因之一是它有很多处理数组的函数。在本文中,将介绍NumPy在数据科学中最重要和最有用的一些函数。 创建数组 1、Array 它用于创建一维或多维数组 numpy.array(object, dtype=None, *, copy=True, order='K'
数据派THU
2023/05/18
1K0
50个常用的 Numpy 函数详解
Numpy&Pandas快速上手篇
Numpy&Pandas Numpy篇 Numpy 创建array Numpy属性 Num基本运算1 Numpy基本运算2 Numpy篇 Numpy 创建array import numpy as np # a = np.array([1,2,3], dtype =np.int ) # a = np.array([[1,2,3],[3,4,5]] , dtype =float ) #设置精度中 设置64只能用np.float64 # a = np.zeros((3,5),dtype = np.int64
计算机魔术师
2022/08/19
1880
Python数据分析之Numpy入门
NumPy(Numerical Python)是Python语言中做科学计算的基础库。重在于数值计算,也是大部分Python科学计算库的基础,多用于在大型,多维数组上执行的数值运算。
仙人技术
2020/04/29
3.2K0
软件测试|Python科学计算神器numpy教程(十二)
NumPy是Python中用于科学计算的一个强大的库,其中包含了丰富的数学和统计函数。这些统计函数允许用户对数组进行各种统计计算,例如平均值、标准差、方差、最大值、最小值等。在本文中,我们将详细介绍NumPy中一些常用的统计函数及其用法。
霍格沃兹测试开发Muller老师
2023/10/25
2130
Python的常用库的数组定义及常用操作
Python支持的库非常多,这当然是它的一大优势,但是也会给我们实际应用中造成点小小的麻烦:每个库对于数据的定义和运算处理都不同,这就使得我们在写代码的时候经常会串掉,比如会一个手滑写成numpy.xarray,又或者是想将两个数组元素相加,却没注意到它们都是list(列表),写成了list1+list2,结果变成了两个列表的合并。。。
郭好奇同学
2021/03/25
1.3K0
Numpy库
NumPy是一个功能强大的Python库,主要用于对多维数组执行计算。NumPy这个词来源于两个单词-- Numerical和Python。NumPy提供了大量的库函数和操作,可以帮助程序员轻松地进行数值计算。在数据分析和机器学习领域被广泛使用。他有以下几个特点:
用户9615083
2022/12/25
3.8K0
Numpy库
Python3快速入门(十二)——Num
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,同时对数组运算提供了大量的数学函数库。 Numpy 是一个运行速度非常快的数学库,内部解除了CPython的GIL,运行效率极好,主要用于数组计算,是大量机器学习框架的基础库,NumPy主要包括如下: (1)强大的N维数组对象 ndarray (2)广播功能函数 (3)整合 C/C++/Fortran 代码的工具 (4)线性代数、傅里叶变换、随机数生成等功能。 NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)组合使用,用于替代 MatLab。
py3study
2020/01/06
4.7K0
Python:机器学习三剑客之 NumPy
Numpy是高性能科学计算和数据分析的基础包,机器学习三剑客之一。Numpy库中最核心的部分是ndarray 对象,它封装了同构数据类型的n维数组。部分功能如下:
丹枫无迹
2019/09/11
9940
相关推荐
Python科学计算:用NumPy快速处理数据
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验