import numpy as np
if __name__ == '__main__':
array=np.array([1,2,3,4,5])
# print(array.shape)#查看矩阵形状
# print(array.dtype)#查看矩阵中数据类型
# print(array.itemsize)#一个元素所占字节
# print(array.size)#矩阵元素个数
# print(array.ndim)#矩阵维度
#给每个位置都重新赋值
# array.fill(0)
# print(array)
#索引与切片,与python一样
# print(array[1:-2])
#多维矩阵
n_array=np.array([[1,2,3],[4,5,6],[7,8,9]],)
# print(n_array)
# print(n_array.shape)
# print(n_array.size)
# print(n_array.itemsize)
# print(n_array.dtype)
# print(n_array.ndim)
# print(n_array[1,1])#取矩阵中某个位置的值
# print(n_array[1])#取矩阵某行
# print(n_array[:,1])#取矩阵某列
#矩阵拷贝
n_array2=n_array #指向的地址一样
# print(id(n_array))
# print(id(n_array2))
n_array2 = n_array.copy() # 拷贝指向的地址不一样
# print(id(n_array))
# print(id(n_array2))
#np.arange():构建等差数组,不包含最后一个,[,)
arithmetic_progression=np.arange(0,100,10)
# arithmetic_progression=np.arange(0,100,5)
# print(arithmetic_progression)
#bool 类型做索引
mask=np.array([0,1,0,0,0,1,1,0,0,1],dtype=bool)
# print(arithmetic_progression[mask])
#构建(0,1)之间随机数
random_array=np.random.rand(10)#构建10个(0,1)之间的随机数
# print(random_array)
mask=random_array >0.5
# print(mask)
# print(arithmetic_progression[mask])
#查看满足条件的索引值
# print(np.where(array>3))
#得到对应的值
# print(array)
#从效果上来看,两种获得的结果一样
# print(array[array>3])
# print(array[np.where(array>3)])
#指定数据类型
array=np.array([i for i in range(1,6)],dtype=np.float32)
# print(array.itemsize)
# print(array.nbytes)#查看总共占用字节数
#类型自动向上转换
array=np.array([1,5.,'str'])
# print(array)#int->float->str
# 如果想保存原来的数据类型,则dtype=np.object
array=np.array([1,5.,'str'],dtype=np.object)
# print(array)
#改变矩阵数据类型
array1=np.array([1,2,3,4,5])
#方法1
# array2=np.asarray(array1,dtype=np.float32)
# print(array2)
#方法2
array2=array1.astype(np.float32)
# print(array2)