> 文档中心 > 零基础学Python:Numpy用法

零基础学Python:Numpy用法

零基础学Python:Numpy用法

前言: 📢📢📢
🏅🏅🏅作者简介:是Dream呀,华为云享专家、CSDN原力计划作者、Python领域优质创作者,专注分享Python领域原创系列文章。
🌻🌻🌻热门专栏:【零基础学Python
本课程是针对Python入门&进阶打造的一全套课程,在这里,我将会一 一更新Python基础语法、Python爬虫、Web开发、 Django框架、Flask框架以及人工智能相关知识,帮助你成为Python大神,如果你喜欢的话就抓紧收藏订阅起来吧~💘💘💘
🍋🍋🍋如果对学习没有自制力或者没有一起学习交流的动力,欢迎私信我或者文末添加vx,拉你进群,群内有行业大佬帮大家解答疑问,我们一起学习,群内定期还会有抽奖活动和红包相送嗷,快来进入我们吧~
💕 入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀
💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺

Numpy是Python数据科学中的最核心的拓展库,用于科学分析和建模。 可以提供数组支持,以及相应的高效处理函数。

一、创建数组

1.array创建数组

# 1.array创建数组import  numpy as np# a = np.array([[1,5],[4,5,7]])  # 创建数组,将元组或者列表作为参数b = np.array(([1,5,7],[4,5,7]))  # 创建二维的narray对象# print(type(a))print(type(b))# print(a)print(b)

结果:

[list([1, 5]) list([4, 5, 7])]
[[1 5 7]
[4 5 7]]

2.arange()创建数组,与range()相似

# 2.arange()创建数组,与range()相似import numpy as npa = np.arange(10)print(a)b = np.arange(1,10,2)  # 指定步长print(b)

[0 1 2 3 4 5 6 7 8 9]
[1 3 5 7 9]

3.linspace()用创建指定数量等间隔的序列,实际上生成一个等差数列

# 3.linspace()用创建指定数量等间隔的序列,实际上生成一个等差数列import numpy as npa = np.linspace(0,1,10)print(a)

[0. 0.11111111 0.22222222 0.33333333 0.44444444 0.55555556
0.66666667 0.77777778 0.88888889 1. ]

4.logspace()用于生成等比数列

# 4.logspace()用于生成等比数列import numpy as npa = np.logspace(0,2,5)  # 首位是10的2次方,末位是10的2次方print(a)

[ 1. 3.16227766 10. 31.6227766 100. ]

二、查看数组

import numpy as npa = np.array([[1,5],[4,5,7],3])b = np.array(([1,5,3,4,5],[6,7,8,9,5]))print(type(a))print(type(b))

1.查看数组

print(a)print(b)

2.查看数组中每个元素的类型

print(a.dtype)  # 查看数组中每个元素的类型print(b.dtype)

object
int32

3.查看数组的行列

print(a.shape)  # 查看数组的行列,3行print(b.shape)  # 查看数组的行数,返回行列的元组。5行5列

(3,)
(2, 5)

4.查看数组的行数、列数

print(b.shape[0])  # 查看数组的行数print(b.shape[1])  # 查看数组的列数

2
5

5.查看数组的维数

print(b.ndim)  # 查看数组的维数

2

6.转置数组

print(b.T)  # 转置数组

[[1 6]
[5 7]
[3 8]
[4 9]
[5 5]]

import numpy as npa = np.array([[1,5],[4,5,7],3])b = np.array(([1,5,3,4,5],[6,7,8,9,5]))print(type(a))print(type(b))print(a)print(b)print(a.dtype)  # 查看数组中每个元素的类型print(b.dtype)print(a.shape)  # 查看数组的行列,3行print(b.shape)  # 查看数组的行数,返回行列的元组。5行5列print(b.shape[0])  # 查看数组的行数print(b.shape[1])  # 查看数组的列数print(b.ndim)  # 查看数组的维数print(b.T)  # 转置数组

三、数组索引 切片

import numpy as npa = np.array([[1,2,3,4,5],[6,7,8,9,10]])b = np.array(([1,2,3,4,5],[6,7,8,9,10]))print(a)print(b)

[[ 1 2 3 4 5]
[ 6 7 8 9 10]]
[[ 1 2 3 4 5]
[ 6 7 8 9 10]]

1.选取第二行的元素

print(a[:])  # 选取全部元素print(a[1])  # 选取第二行的元素

[[ 1 2 3 4 5]
[ 6 7 8 9 10]]
这个是列表
[ 6 7 8 9 10]

2.选取[0:1)中的全部元素

print(a[0:1])  # 选取[0:1)中的全部元素

这个是数组
[[1 2 3 4 5]]

3.选取第二行中第[2:5)的元素

print(a[1,2:5])  # 选取第二行中第[2:5)的元素print(a[1,:])  # 选取第二行之后的

这个是列表
[ 8 9 10]
[ 6 7 8 9 10]

4.选取行为1,列为2的元素8

print(a[1,2])  # 选取行为1,列为2的元素8print(a[1][2])  # 选取行为1,列为2的元素8

8
8

import numpy as npa = np.array([[1,2,3,4,5],[6,7,8,9,10]])b = np.array(([1,2,3,4,5],[6,7,8,9,10]))print(a)print(b)print(a[:])  # 选取全部元素print(a[1])  # 选取第二行的元素print(a[0:1])  # 选取[0:1)中的全部元素print(a[1,2:5])  # 选取第二行中第[2:5)的元素print(a[1,:])  # 选取第二行之后的print(a[1,2])  # 选取行为1,列为2的元素8print(a[1][2])  # 选取行为1,列为2的元素8

四、矩阵运算

import numpy as npimport numpy.linalg as lga = np.array([[1,2,3],[4,5,6],[5,4,5]])b = np.array([[1,5,4],[3,4,8],[8,5,6]])

1.相加减

print(a+b)print(a-b)

[[ 2 7 7]
[ 7 9 14]
[13 9 11]]
[[ 0 -3 -1]
[ 1 1 -2]
[-3 -1 -1]]

2.相除

print(a/b)  # 相除print(a%b)  # 相除后取余数

[[1. 0.4 0.75 ]
[1.33333333 1.25 0.75 ]
[0.625 0.8 0.83333333]]
[[0 2 3]
[1 1 6]
[5 4 5]]

3.矩阵每个元素取n次方

print(a**5)  # 矩阵每个元素取n次方

[[ 1 32 243]
[1024 3125 7776]
[3125 1024 3125]]

4.点乘满足:第一个矩阵的列数等于第二个矩阵的行数

print(a.dot(b))  # 点乘满足:第一个矩阵的列数等于第二个矩阵的行数

[[31 28 38]
[67 70 92]
[57 66 82]]

5.转置

print(a.transpose())  # 转置等价于print(a.T)

转置等价于print(a.T)
[[1 4 5]
[2 5 4]
[3 6 5]]

6.用linalg的inv()函数来求逆

print(lg.inv(a))  # 用linalg的inv()函数来求逆

[[-0.16666667 -0.33333333 0.5 ]
[-1.66666667 1.66666667 -1. ]
[ 1.5 -1. 0.5 ]]

import numpy as npimport numpy.linalg as lga = np.array([[1,2,3],[4,5,6],[5,4,5]])b = np.array([[1,5,4],[3,4,8],[8,5,6]])print(a+b)print(a-b)print(a/b)  # 相除print(a%b)  # 相除后取余数print(a**5)  # 矩阵每个元素取n次方print(a.dot(b))  # 点乘满足:第一个矩阵的列数等于第二个矩阵的行数print(a.transpose())  # 转置等价于print(a.T)print(lg.inv(a))  # 用linalg的inv()函数来求逆