一、numpy.array基础
1、首先调用numpy,查看版本,取别名:
import numpy
numpy.__version__
‘1.16.5’
import numpy as np
2、与Python自带的List的区别
(1)list数组里元素可以不是同一个类型
L = [i for i in range(10)]
L[5] = 'machine learning'
L
[0, 1, 2, 3, 4, ‘machine learning’, 6, 7, 8, 9]
优点是灵活,缺点是效率较低。
(2)Python里也有限定只能存储一种类型的数组:array
import array
arr = array.array('i',[i for i in range(10)])
arr[5] = 100
arr
第一个参数表示整形
array(‘i’, [0, 1, 2, 3, 4, 100, 6, 7, 8, 9])
尝试对元素赋非整形值
arr[5] = 'machine learning'
TypeError Traceback (most recent call last)
in
----> 1 arr[5] = ‘machine learning’
TypeError: an integer is required (got type str)
会报错
array 的优点是效率高,缺点是不灵活。没有配备矩阵运算,对于机器学习不方便
(3)numpy.array
创建和查看,修改元素基本操作和python里的array类似:
nparr = np.array([i for i in range(10)])
nparr
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
nparr[5]
5
nparr[5] = 100
nparr
array([ 0, 1, 2, 3, 4, 100, 6, 7, 8, 9])
nparr[5] = 'hello'
ValueError Traceback (most recent call last)
in
----> 1 nparr[5] = ‘hello’
ValueError: invalid literal for int() with base 10: ‘hello’
a.对于上述创建的numpy.array,可以用**.dtype**查看数据类型
nparr.dtype
dtype(‘int32’)
可知是整形。
注意如果某元素修改为浮点数,这里会自动截位操作。
b.机器学习中常用数据类型为浮点型
nparr2 = np.array([1,2,3.0])
nparr2.dtype
dtype(‘float64’)
二、其他创建numpy.array的办法
1、numpy.zeros
(1)创建全为0的1维数组
np.zeros(10)
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
默认数据类型为"float"
(2)创建时规定数据类型
np.zeros(10,dtype=int)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
(3)可生成2维矩阵
np.zeros((3,5))
完整参数设置如下:
np.zeros(shape