Numpy - 知识点总结(二)
程序员文章站
2022-05-29 18:17:37
...
1、 数组的属性
使用numpy生成的数组有以下属性
Shape:返回数组的维度元组,也可用于调整数组的维度;
import numpy as np
"""创建数组"""
print("""创建数组""")
arr1 = np.array([[1,2,3,4,5,6],[1,2,3,4,5,6]])
print(arr1)
print(arr1.shape)
arr1.shape = (6,2)
print(arr1)
Reshape:也可用来调整数组的维度,但该方法并不会改变原来数组的维度,只会返回一个改变维度后的数组;
import numpy as np
"""创建数组"""
print("""创建数组""")
arr1 = np.array([[1,2,3,4,5,6],[1,2,3,4,5,6]])
print(arr1)
print(arr1.shape)
arr2 = arr1.reshape((6,2))
print(arr2)
print(arr1)
Itemsize:返回数组中每一项所占的字节大小(int8为一字节)
ndim: 返回矩阵的秩
size:返回矩阵元素的个数
dtype:返回矩阵元素的数据类型
2、 numpy切片和索引
ndarray对象可以通过索引或者切片来访问和修改,一共有三种索引方法类型:字段访问,基本切片以及高级索引;
(1)基本索引
基本切片是Python中基本切片概念到N维的扩展,通过将start、stop、step参数提供给内置的slice函数来构造一个Python slice对象,此slice对象被传递给数组来提取数组的一部分;
import numpy as np
arr1 = np.arange(0,10)
arr2 = slice(1,5,1)
print("arr1:",arr1)
print("arr2",arr2)
print(arr1[arr2])
此外,还可以使用冒号,将切片信息直接传递给ndarray对象;
import numpy as np
arr1 = np.arange(0,10)
arr2 = slice(1,5,1)
print("arr1:",arr1)
print("arr2",arr2)
print(arr1[arr2])
print(arr1[1:5:1])
使用以下实例进行额外说明:
import numpy as np
arr1 = np.arange(0,10).reshape((2,5))
print("arr1:",arr1)
print("第一行数据为:",arr1[0])
print("第一列数据为:",arr1[:,0])
print("第一行第一列数据为",arr1[0,0])
print("第一行第一,二列数据为",arr1[0,:2])
print("第一,二行第一,二列数据为",arr1[:2,:2])
print("第一,二行第一,二列数据为",arr1[0:2,0:2])
print("第一,二行所有列中偶数列数据为",arr1[0:2,::2])
(2)高级索引
整数索引在N维数组中比较常用,以二维数组为例,可使用list分别指定行索引的行号以及列索引的列号:
import numpy as np
arr1 = np.arange(0,10).reshape((2,5))
print("arr1:",arr1)
print(arr1[[0,1],[2,3]])
注:可以切片和整数索引配合一起使用
布尔索引:当结果对象是布尔运算的结果时,将使用此类型的高级索引;
import numpy as np
arr1 = np.arange(0,12).reshape((4,3))
print("arr1:",arr1)
print(arr1[arr1 > 3])
上一篇: 【C++深度解析】33、子类定义父类同名的函数或变量
下一篇: Java中的继承与组合(转载)