首页 > 编程 > Python > 正文

浅谈numpy库的常用基本操作方法

2020-02-16 11:31:27
字体:
来源:转载
供稿:网友

NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推。在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量。比如说,二维数组相当于是一个一维数组,而这个一维数组中每个元素又是一个一维数组。所以这个一维数组就是NumPy中的轴(axes),而轴的数量——秩,就是数组的维数。

1、创建矩阵

Numpy库中的矩阵模块为ndarray对象,有很多属性:T,data, dtype,flags,flat,imag,real,size,

itemsize,nbytes,ndim,shape,strides,ctypes,base等等。

1.1采用ndarray对象

import numpy as np #引入numpy库#创建一维的narray对象a = np.array([1,2,3,4,5])#创建二维的narray对象a2 = np.array([[1,2,3,4,5],[6,7,8,9,10]])#创建多维对象以其类推

1.2通过函数创建矩阵

1.2.1 arange

import numpy as npa = np.arange(10) # 默认从0开始到10(不包括10),步长为1print(a) # 返回 [0 1 2 3 4 5 6 7 8 9]a1 = np.arange(5,10) # 从5开始到10(不包括10),步长为1print(a1) # 返回 [5 6 7 8 9]a2 = np.arange(5,20,2) # 从5开始到20(不包括20),步长为2print(a2) # 返回 [ 5 7 9 11 13 15 17 19]

1.2.2 linspace

linspace()和matlab的linspace很类似,用于创建指定数量等间隔的序列,实际生成一个等差数列。

import numpy as npa = np.linspace(0,10,5) # 生成首位是0,末位是10,含5个数的等差数列print(a) 

1.2.3 logspace


linspace用于生成等差数列,而logspace用于生成等比数列。

下面的例子用于生成首位是100,末位是102,含5个数的等比数列

import numpy as npa = np.logspace(0,2,5)print(a)

1.2.4 ones,zeros,eye,empty

ones创建全1矩阵
zeros创建全0矩阵
eye创建单位矩阵
empty创建空矩阵(实际有值)

import numpy as npa_ones = np.ones((3,4)) # 创建3*4的全1矩阵print(a_ones)# 结果[[ 1. 1. 1. 1.] [ 1. 1. 1. 1.] [ 1. 1. 1. 1.]]a_zeros = np.zeros((3,4)) # 创建3*4的全0矩阵print(a_zeros)# 结果[[ 0. 0. 0. 0.][ 0. 0. 0. 0.][ 0. 0. 0. 0.]]a_eye = np.eye(3) # 创建3阶单位矩阵print(a_eye)# 结果[ 1. 0. 0.][ 0. 1. 0.][ 0. 0. 1.]]a_empty = np.empty((3,4)) # 创建3*4的空矩阵 print(a_empty)# 结果[[ 1.78006111e-306 -3.13259416e-294 4.71524461e-309 1.94927842e+289][ 2.10230387e-309 5.42870216e+294 6.73606381e-310 3.82265219e-297][ 6.24242356e-309 1.07034394e-296 2.12687797e+183 6.88703165e-315]]

1.2.5 fromstring

fromstring()方法可以将字符串转化成ndarray对象,需要将字符串数字化时这个方法比较有用,可以获得字符串的ascii码序列。

a = "abcdef"b = np.fromstring(a,dtype=np.int8) # 因为一个字符为8位,所以指定dtype为np.int8print(b) # 返回 [ 97 98 99 100 101 102]             
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表