Numpy - 知识点总结(二)

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])


猜你喜欢

转载自blog.csdn.net/u011587322/article/details/80753707
今日推荐