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])
(2)
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)
np.zeros()函数,创建一个元素全为0的数组,可以是任意维度
# np.zeros()
np.zeros(10) # 创建一个全为0的一维数组
# out:array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
np.zeros((3, 6)) # 创建一个全为0的二维数组
'''
out:
array([[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.]])
'''
np.zeros((3, 2, 2, 2)) # 创建一个全为0的四维维数组
'''
out:
array([[[[0., 0.],
[0., 0.]],
[[0., 0.],
[0., 0.]]],
[[[0., 0.],
[0., 0.]],
[[0., 0.],
[0., 0.]]],
[[[0., 0.],
[0., 0.]],
[[0., 0.],
[0., 0.]]]])
'''
(4)
np.empty()函数,创建一个空的数组
np.empty((2, 2))
'''
out:
array([[1.19255575e-311, 4.92089383e-321],
[3.33988377e-321, 3.33988377e-321]])
'''
(5)
np.ones()函数,创建一个元素全为1的数组
np.ones((2, 2))
'''
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])
------
# 多维数组的切片
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],
[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表示对对应层的列表进行切片
'''