python编程numpy库数组知识点总结及详细讲解笔记numpy的知识内容主要分为以下8个部分
所有代码均在jupyter中运⾏
上岸是什么意思out: 后⾯的内容均为运⾏输出的结果
⽬录:
1.创建数组
2.shape函数返回数组的维度(元组的形式返回)
3.数组切⽚
4.改变数组维度
5.数组的组合
6.分割数组
7.数组的属性
8.数组的转换
最重要的,先导⼊numpy包
import numpy as np
1.创建数组
使⽤numpy创建数组的⽅法有以下⼏种
(1)
numpy.arange([start, ]stop, [step, ]dtype=None)
参数详解:
start, stop ----> 数组的起始位置和停⽌的位置,元组的形式,遵循左闭右开原则,start省略的时候默认为0
step ----> 等差数组的步长, 默认为1
dtype ----> 指定数据类型
只能创建⼀维数组,可以后期通过其他的⽅法改变它的维度
# 不指定start
a = np.arange(5)
a
# out: array([0, 1, 2, 3, 4])
--------------
# 指定start
a = np.arange(2, 5)
a
# out: array([2, 3, 4])
--------------
# 指定步长step
a = np.arange(2, 10, 2) # 带有start参数的指定⽅式
a
# out: array([2, 4, 6, 8])
a = np.arange(10, step = 2) # 不带start参数的指定⽅式
a
# out: array([0, 2, 4, 6, 8])
numpy.array(object, dtype=None, copy=True, order=‘K’, subok=False, ndmin=0)参数详解:
dtype ----> 指定数据类型
可以创建⼀维或多维数组
# 创建⼀维数组
a = np.array([1, 2, 3, 4])
a
# out: array([1, 2, 3, 4])
------
# 创建⼀个⼆维数组
a = np.array([[1, 2], [3, 4]])
a
'''
out:
array([[1, 2],
[3, 4]])
'''
------
# 指定数据类型
a = np.array([1, 2, 3, 4], dtype = 'str')
a
# out: array(['1', '2', '3', '4'], dtype='<U1')
# 可以看到数组中的所有元素均变成字符串类型
(3)
month函数填充月份
# np.zeros()
# out:array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
'''
out:
array([[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.]])
'''
'''
out:
array([[[[0., 0.],
[0., 0.]],
[[0., 0.],
[0., 0.]]],
[[[0., 0.],
[0., 0.]],
[[0., 0.],python基础知识整理
[0., 0.]]],
[[[0., 0.],
[0., 0.]],
[[0., 0.],
[0., 0.]]]])
'''
'''
out:
array([[1.19255575e-311, 4.92089383e-321],
[3.33988377e-321, 3.33988377e-321]])
'''
(5)
'''
out:
array([[1., 1.],
[1., 1.]])
'''
2.shape函数返回数组的维度(元组的形式返回)
shape主要是⽤于查看数组的维度,形状
shape也能改变数组的维度,形状
# ⽤shape查看数组a的维度和形状
a = np.array([[0,1,2,3,4],[1,3,2,3,4]])
a.shape
# out: (2, 5)
# 可以看到数组a是⼀个⼆维数组
------
# ⽤shape改变数组的维度和形状
a = np.arange(8) # 先创建⼀个⼀维数组a
a
# out: array([0, 1, 2, 3, 4, 5, 6, 7])
a.shape # 数组的形状
# out: (8,)
# 然后⽤shape改变a的形状
a.shape = (2, 4)
a # 再次查看数组a
'''
out:
array([[0, 1, 2, 3],
法媒: 阿根廷进球无效[4, 5, 6, 7]])
'''
a.shape # 再次查看a的形状
# out: (2, 4)
# 可以发现,数组a发⽣了⼀定的变化,但是它本⾝具有的元素个数和内容不变
3.数组切⽚
数组切⽚主要是获取数组的某⼀部分,遵循左闭右开原则
也发现了给步长设置为-1还有反转数组元素顺序的功能,但是这个功能在arange函数创建数组中却不能⽤,只能创建⼀个空的数组以及“…”省略号在多维数组中的妙⽤
# ⼀维数组的切⽚
a = np.arange(9)
a[3:7] # 3和7是数组元素的索引值,这⾥指的是获取数组第4个元素到滴7个元素
# 该操作返回⼀个新的数组,不会改变原数组
# 如果需要改变原数组,可以使⽤a = a[3:7]的⽅式
# out: array([3, 4, 5, 6])
# out: array([3, 4, 5, 6])
------
# 多维数组的切⽚
b = np.arange(24).reshape(2, 3, 4) # reshape是⽤于改变数组的形状和维度⽤的,后⾯会讲到
b
'''
out:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9,10,11]],
[[12, 13, 14, 15],
qtoolbutton[16, 17, 18, 19],
[20, 21, 22, 23]]])
'''
# 选取其中⼀个元素
b[0,0,0]
# out: 0
# 选取其中的⼀部分
b[:,0,0] # ":"表⽰选中所有元素,每个元素的第1个元素的第0个元素
# 这⾥所说的元素不仅仅指的是⼀个数字,也包括⼀个包含于数组中的列表
'''
out:
array([ 0, 12])
'''
# 以更加复杂的⽅式进⾏多维数组的切⽚
b[:,0,1:3] # 这⾥的1:3表⽰对对应层的列表进⾏切⽚
'''
out:
array([[ 1, 2],
[13, 14]])
'''
------
# “...”省略号在多维数组中的妙⽤
b[..., 1] # 相当于b[:, :, 1], 连续的:可以⽤省略号...代替
'''
out:
array([[ 1, 5, 9],
[13, 17, 21]])
'''
b[1,...] # 相当于b[1, :, :]
'''
out:
array([[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]])
'''
------
# 如何反转数组
# 先看看原来的数组
b
'''
out:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9,10,11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
'''
b[::-1] # 反转最外层的列表
# 要注意:这⾥的2个":"没有⽤逗号分隔,第⼀个":"代表选取整个数组作为切⽚,
# 第⼆个":"是⽤于分隔后⾯⼀个参数,这个参数是步长,当步长为-1的时候回反转整个数组的顺序 # 如果是[:,-1]这种形式的-1代表的是选取最后⼀个元素
'''
'''
out:
array([[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]],
[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]]])
'''
# 这⾥的只是反转了最为外⾯的⼀层
花式索引(拓展)
# 花式索引
arr = np.arange(32).reshape((8, 4))
arr
'''
out:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23],
[24, 25, 26, 27],
[28, 29, 30, 31]])
'''
# 选取特定的⾏并选择⾏的某⼀列(这个例⼦中⾏的列只有单个数字元素)arr[[1, 5, 7, 2], [0, 3, 1, 2]]
# out: array([ 4, 23, 29, 10])
# 还能选取特定的⾏,然后将每⼀⾏的元素进⾏排列后整⾏输出
arr[[1, 5, 7, 2]][:,[0, 3, 1, 2]]
'''
out:
array([[ 4, 7, 5, 6],
[20, 23, 21, 22],
[28, 31, 29, 30],
[ 8, 11, 9, 10]])
'''
# numpy中的⽅法实现上⾯的输出、
arr[np.ix_([1, 5, 7, 2], [0, 3, 1, 2])]
'''
out:
array([[ 4, 7, 5, 6],
[20, 23, 21, 22],
include用法及短语[28, 31, 29, 30],
[ 8, 11, 9, 10]])
'''
4.改变数组维度
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论