Numpy学习笔记(一):基本概念及数组的创建

机器学习中,样本及其特征的存储都是以数组的形式存储的,其中行一般定义为样本特征,而列代表的是样本的个数。机器学习处理的就是样本以及特征,因此离不开常用的:Numpy(科学计算库)。NumPy(Numerical Python)是Python语言的一个扩充程序库,由许多协作者共同开发维护的开源代码的数学函数库。其支持大量的维度数组与矩阵运算 。
特点
Numpy主要的特点是,可以通过自身的数据中定义的ndarry类创建N维数组对象ndarray,其是一个以0为下标开始的同类型数据的集合。
ndarry所创建的对象存放同类型元素的多维数组。可以通过以下的Numpy中定义的类的方法来查看数组的特性:
ndarray类
  NumPy中的数组类被称为ndarray,要注意的是numpy.array与Python标准库中的array.array是不同的。ndarray具有如下比较重要的属性:
ndarray.ndim
  ndarray.ndim表示数组的维度。
ndarray.shape
  ndarray.shape是一个整型tuple,用来表示数组中的每个维度的大小。例如,对于一个n行和m列的矩阵,其shape为(n,m)。
ndarray.size
  ndarray.size表示数组中元素的个数,其值等于shape中所有整数的乘积。
ndarray.dtype
  ndarray.dtype用来描述数组中元素的类型,ndarray中的所有元素都必须是同一种类型,如果在构造数组时,传入的参数不是同一类型的,不同的类型将进行统一转化。
ndarray.itemsize
  ndarray.itemsize用于表示数组中每个元素的字节大小。

数组的创建

通过array创建一维、二维数组,并通过print“变量.shape”来查看变量的形式 。

import numpy as np
vector =np.array([2,10,15,20])
matrix=np.array([[5,10,15],[20,35,26],[35,40,30]])
print(vector)
print(matrix)
print(vector.shape)
print(matrix.shape)
结果:
[ 2 10 15 20]
[[ 5 10 15]
 [20 35 26]
 [35 40 30]]
(4,)
(3, 3)

数组切片

一维数组的切片

vector=np.array([5,10,15,20])
print(vector[0:3])#取得是左闭右开

分析:提取的元素的范围为左闭右开区间,因此只切0到2

结果:
[ 5 10 15]

二维数组的切片

matrix=np.array([[2,3,5],[3,4,5],[5,6,7]])
print(matrix[:,1])
print(matrix[:,0:2])

分析:将第1列的所有元素取出
将第0、1列的元素取出来
运行结果:

    [3 4 6]
    [[2 3]
     [3 4]
     [5 6]]

数组的判断以及索引


#判断

vector =np.array([5,10,15,20])
vector ==10
vector =np.array([[5,10],[15,20]])
vector ==10
运行结果:
array([False,  True, False, False])
array([[False,  True],     #返回的是bool类型的
       [False, False]])

利用bool类型索引
#可以将上述返回得bool量当成索引

vector =np.array([[5,10],[15,20]])
equal_to_ten = (vector ==10)
print (equal_to_ten)
print(vector[equal_to_ten])
运行结果:
[[False  True]
 [False False]]
[10]

实际意义:

#实例:提取筛选样本某个特征,比提取样本
matrix = np.array([[20,30,40],[27,25,27],[30,26,28]])
second_column_25=(matrix[:,1]==25)
print(second_column_25)
print(matrix[second_column_25,:])
运行结果:
[False  True False]
[[27 25 27]]

改变数组中元素的类型:

#numpy改变ndarray中得数据类型
vector = np.array(["1","2","3"])
print(vector.dtype)
print(vector)
vector =vector.astype(float)
print(vector.dtype)
print(vector)
结果:
<U1
['1' '2' '3']
float64
[1. 2. 3.]

猜你喜欢

转载自blog.csdn.net/qq_33356616/article/details/83448662