numpy ndarray对象
概念
一个一系列相同类型元素组成的数组集合。
ndarray对象采用了数组的索引机制,将数组中的每个元素映射到内存块上,并且按照一定的布局对内存块进行排列。
array创建数组
import numpy as np
#%%
np.array([1,2,3,4,5])
#%%
#元组
np.array((1,2,3,4,5))
#%%
a=np.array([1,2,3,4,5])
#数组
b=np.array(a)
b
#%%
#迭代对象
np.array(range(10))
#%%
#生成器
np.array([i**2 for i in range(10)])
当列表中元素类型不相同时,哪种数据类型最大就存储为哪种数据类型
例如:
np.array([1,1.5,3,4.5,‘5’])
数组中的元素类型将为字符串
创建嵌套数组时,若嵌套序列不一致,则会强制转化为一维数组
np.array([[1,2,3],('a','b','c','d')])
结果为:
转化数组中的元素类型(例如整型转换为浮点型):
#强制转化类型
a=np.array([1,2,3,4,5],dtype=float)
a
复制数组:
a=np.array([1,2,3,4])
#在定义b时,如果想复制a的几种方案:
#1.使用np.array()
b=np.array(a)
print('b=np.array(a):',id(b),id(a))
#2.使用数组的copy()方法
c=a.copy()
print('c=a.copy():',id(c),id(a))
#注意不能使用=号复制,否则修改d时也会修改a
d=a
print('d=a:',id(d),id(a))
subok修改使用的数据类型:
#创建一个矩阵
a=np.mat([1,2,3,4])
#输出为矩阵类型
print(type(a))
#既要复制一份副本,又要保持原类型
at=np.array(a,subok=True)
af=np.array(a)#默认为False
print(type(at))
print(type(af))
print(id(at),id(a))
arrange
linspace
endpoint、retstep:
#当endpoint=False时,不包含终点的值
#设置retstep显示计算后的步长
ar=np.linspace(2.0,3.0,5,endpoint=False,retstep=True)
ar
结果:
等比数列
全0全1
属性
reshape:
%使用reshape调整维度至二维数组
a=np.arange(20).reshape((4,5))
a
结果:
resize
numpy.resize(a,new shape)如果新数组大于原始数组,则新数组将填充a的重复副本
`如果是a.resize(new shape),则用0填充
共勉