# 使用1个list对象来创建array
A = np.array([[1,2],[3,4]])# 方式1
B = np.array([x for x inrange(5)])# 方式2# 上述array中的元素都是数值元素# 也可以是字符、字符串
C = np.array([['A','B'],['C','D'],['E','F']])
# 使用库自带的方法(.zeros()、.ones()、.eye())来创建array# 所有元素值都为0
A = np.zeros(5)
B = np.zeros([5,2])# 所有元素值都为1
C = np.ones(5)
D = np.ones([5,2])# 创建单位矩阵
E = np.eye(4)
# 使用库自带的方法(.arange())来创建array
A = np.arange(0,8,3)# [) 左闭右开,步长
B = np.linspace(1,5,10)# [] 左闭右闭,步长=(5-1)/(10-2-1)
Random array
# 正态分布:
A = np.random.randn(3,2)
B = np.random.randn(2)# 均匀分布:
C = np.random.rand(3,2)
D = np.random.rand(2)# 将输入序列-range对象,打乱顺序
E = np.random.permutation(range(1,8))
Properties of Arrays
# shape
A = np.array([[1,2],[3,4]])print(A.shape)# type array的元素类型print(A.dtype)# 改变array的类型 .astype()
B = A.astype(float)print(B.dtype)# Polymorphism array的元素类型不唯一
C = np.array([1,2,'HelloChina',2.,True])
C[0]='A'# 可行
C[1]='ABC'# 可行# 在执行替换前,输出C,发现其元素全部变成了str类型
D=np.array([1,2,3,4.])# 在执行替换前,输出D,发现其元素全部都是float类型
D[0]='A'# 报错
Jagged Arrays
Reshaping
A = np.arange(1,13)
B = A.reshape(3,4)# 3row,4col,从左到右、从上到下# 等价于:B = A.reshape(3,4,order='C')
C = A.reshape(3,4,order='F')# 3row,4col,从上到下,从左到右
Flatting Martix
A = np.array([[1,2],[3,4],[5,6],[7,8]])
B = A.flatten()
Array Representation
A = np.arange(1,13)
B = A.reshape(3,4,order='C')print(B.dtype)# 得到int32:4个字节print(B.data.tobytes())'''得到
b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\t\x00\x00\x00\n\x00\x00\x00\x0b\x00\x00\x00\x0c\x00\x00\x00'
'''
C = A.reshape(3,4,order='F')print(C.dtype)# 得到int32:4个字节print(C.data.tobytes())'''得到
b'\x01\x00\x00\x00\x04\x00\x00\x00\x07\x00\x00\x00\n\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x08\x00\x00\x00\x0b\x00\x00\x00\x03\x00\x00\x00\x06\x00\x00\x00\t\x00\x00\x00\x0c\x00\x00\x00'
# 综上所述:计算机存储是从左到右,从上到下的
'''
# 得到一个arrays,其中有十个元素,都为随机值,求其大于0.5元素的平均值'''方法1'''
data = np.random.rand(10)sum=0
num=0for x in data:if x>0.5:sum+=x
num+=1print(sum/num)'''方法2:Clearer、Faster'''
data = np.random.rand(10)
result=data[data >0.5].mean()print(result)