Numpy(以下简称np)
array函数
语法:numpy.array(object,dtype=None,copy=True,order=None,subok=False,ndmin=0),
其中:
object : 是数组或嵌套的数列
dtype : 是数组元素的数据类型,可选,默认为浮点型
copy : 是设置是否需要复制,默认需要
order : 创建数组的样式,c代表行方向,f代表列方向,a代表任意方向
subok : 默认返回一个基类类型一致的数组
ndmin : 指定生成数组的最小维度
示例:
import numpy as np
dataListInt = [0,1,2,3,4,5,]
dataListFloat = [0,1.0,2.1,3,4,5,]
dataInt = np.array(dataListInt)
dataFloat = np.array(dataListFloat)
print(dataInt) #[1 2 3 4 5]
print(dataFloat) #[0. 1. 2.1 3. 4. 5. ]
这里发现,当数组中存在浮点型数据时,其他整数型数据也会被转换成浮点型。
np嵌套的数组会自动转换成多维数组
示例:
import numpy as np
dataList = [[0,1,2,3,4,5,],[0,1.0,2.1,3,4,5,]]
data = np.array(dataList)
print(data)
#输出结果如下
resutl='''
[[0. 1. 2. 3. 4. 5. ]
[0. 1. 2.1 3. 4. 5. ]]
'''
np.array()的对象属性
ndim:
说明:数组轴的个数,在python的世界中,轴的个数被称作秩
语法:np.array(list).ndim
shape:
说明:数组的维度。这是一个指示数组在每个维度上大小的整数元组
语法:np.array(list).shape
size:
说明: 数组元素的总个数,等于shape属性中元组元素的乘积。
语法:np.array(list).size
dtype
说明:一个用来描述数组中元素类型的对象,可以通过创造或指定dtype使用标准Python类型,NumPy也提供它自己的数据类型。
语法:np.array(list).dtype
示例:
import numpy as np
dataList = [[0,1,2,3,4,5,],[0,1.0,2.1,3,4,5]]
data = np.array(dataList)
print(data.ndim) #2
print(data.shape) #(2,6)
print(data.size) #12
数组创建
全0/1数组
np.ones(x):生成x个1的数组
np.zeros(x):生成x个0的数组
示例:
import numpy as np
data = np.ones(10)
data = np.zeros(10)
print(data)
无初始值的多维数组
np.empty((a,b,c)):生成一个a维数组,b列,每个列表中有c个数
示例:
import numpy as np
dataA = np.empty(3)
dataAB = np.empty((3,3))
dataABC = np.empty((3,3,3))
print(dataA,dataAB,dataABC)
从已有的数组创建数组
语法:np.asarray(a,dtype = None,order = None),
其中
a:任意形式的输入参数,可以是列表,列表的元组等多维数组
dtype:数据类型,可选
order:可选,C、F选项分别代表行优先和列优先。
import numpy as np
x = [1,2,3]
a = np.asarray(x,dtype=float)
print(a) #[1. 2. 3.]
动态数组
说明:实现动态数组,接收参数,转换成ndarray对象
语法:np.frombuffer(buffer,dtype=float,count=-1,offset=0),
其中:
buffer:被读取的任意对象
dtype:返回的数组的数据类型
count:读取的数据数量,默认为-1,读取所有数据。
offset:读取的起始位置,默认为0。
示例:
import numpy as np
x = str(input("输入:")) #Hello Wrold
x = x.encode(encoding='utf-8')
a = np.frombuffer(x,dtype='S1')
print(a)
print(a) #[b'H' b'e' b'l' b'l' b'o' b' ' b'W' b'o' b'r' b'l' b'd']
可迭代对象创建数组
说明:从可迭代对象中建立ndarray对象,返回数组
语法:numpy.fromiter(iterable,dtype,count=-1),
其中:
iterable:可迭代对象
dtype:返回数组的数据类型
count:读取的数据数量,默认为-1,读取所有数据
import numpy as np
iterList =iter(range(5))
x = np.fromiter(iterList,dtype=float)
print(x) #[0. 1. 2. 3. 4.]
语法:np.arange(start,stop,step,dtype=None),
其中:
start:起始位置,默认为0
stop:停止位置,默认最后一位
step:步长
dtype:输出数组的类型
示例:
import numpy as np
x = np.arange(0,10,1,dtype=float)
print(x) #[0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
数据类型
数据类型转换:
语法:np.array(list).astype(np.xxx),其中xxx 是转换的目标数据类型
示例:
import numpy as np
arr = np.arange(0,10,1,dtype=float)
print(arr.dtype) #float64
arr = arr.astype(np.int64)
print(arr.dtype) #int64