欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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)

Numpy - 知识点总结(二)

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)

Numpy - 知识点总结(二)

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

Numpy - 知识点总结(二)

此外,还可以使用冒号,将切片信息直接传递给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])

Numpy - 知识点总结(二)

使用以下实例进行额外说明:

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

Numpy - 知识点总结(二)

(2)高级索引

整数索引在N维数组中比较常用,以二维数组为例,可使用list分别指定行索引的行号以及列索引的列号:

import numpy as np
arr1 = np.arange(0,10).reshape((2,5))
print("arr1:",arr1)
print(arr1[[0,1],[2,3]])

Numpy - 知识点总结(二)

注:可以切片和整数索引配合一起使用

布尔索引:当结果对象是布尔运算的结果时,将使用此类型的高级索引;

import numpy as np
arr1 = np.arange(0,12).reshape((4,3))
print("arr1:",arr1)
print(arr1[arr1 > 3])
Numpy - 知识点总结(二)

相关标签: Python numpy