#导入科学计算库
import numpy as np
import pandas as pd
import random
# #声明一个size为20的四维数组
# nlist_4 = np.array(range(20)).reshape((2,5,1,2))
# print(nlist_4)
# print(nlist_4.ndim)
# print(nlist_4.shape)
# #声明一个三行三列的数组
# nlist_33 = np.array([[1,2,3],[1,2,3],[5,7,8]])
# print(nlist_33)
# print(nlist_33.shape)
# print(nlist_33.ndim)
# print(nlist_33.itemsize) #元素字节
# print(nlist_33.size) #长度
# print(np.size(nlist_33))
# print(np.shape(nlist_33))
# #使用ones()自动生成元素为1的多维数组
# nlist_ones = np.ones((4,4))
# print(nlist_ones)
# print(nlist_ones.dtype) #元素float64
# #使用zeros()来生成元素为0的多维数组
# nlist_zeros = np.zeros((4,4))
# print(nlist_zeros)
# #使用empty()方法来生成随机多维数组,使用第二个参数指定元素类型
# nlist_empty = np.empty([2,2],dtype=np.int)
# print(nlist_empty)
# print(nlist_empty.dtype) #int32
# # numpy把普通list转换为数组
# x = [1,2,3]
# print(type(x))
# nlist = np.asarray(x)
# print(type(nlist))
# print(nlist)
# y = [(1,2,3),(4,5)]
# nlist_y = np.asarray(y)
# print(nlist_y.ndim) #1
# #frombuffer 通过字符串(buffer内存地址)字节切片来生成多维数组
# #b强转byte字节
# my_str = b‘Hello World‘
# nlist_str = np.frombuffer(my_str,dtype=‘S1‘)
# print(nlist_str)
# x = np.array([[1,2],[3,4]])
# print(x)
# #指定axis属性,可以指定当前多维数组的维度
# sum0 = np.sum(x,axis = 0,keepdims=True) #axis = 0/行级/
# print(sum0)
# sum1 = np.sum(x,axis=1,keepdims=True) #axis = 1/列级/
# print(sum1)
# #多维数组赋值
# x = np.array([1,2])
# x[1] = 3
# y = x.copy()
# y[0] = 3
# print(x)
# d = [{‘gender‘: 0}, {‘gender‘: 1}, {‘gender‘: 0}]
# #维度级的运算
# a = np.array([[1,2],[3,4],[5,6]])
# b = np.array([[11,22],[33,44],[55,66]])
# #vstack()方法---维度一样--- 栈式连纵
# suma = np.vstack((a,b))
# print(suma)
# #hstack()方法---维度一样--- 横向连纵
# sumb = np.hstack((a,b))
# print(sumb)
# #多维数组调用
# nl = np.array([[1,2],[3,4],[5,6]])
# print(nl[[2]])
# print(nl[0][0])
# print(nl[1][1])
# nl[1,1] = 444
# print(nl)
# #删除方法 delete
# #删除nlist第二行
# print(np.delete(nl,1,axis=0))
# print(np.delete(nl,0,axis=1))
# a=np.arange(0, 20, 5)
# print(a)
# print(a.dtype)
# b=np.arange(0, 3.0, 0.4)
# print(b)
# print(b.dtype)
# a=np.arange(1,5).reshape((2,2))
# b=np.arange(3,7).reshape((2,2))
# print(a)
# print(b)
# 1创建一个长度为10的一维全为0的多维数组,然后让第5个元素等于1
# ll = np.zeros((10,))
# print(ll)
# print(ll.ndim)
# print(ll.size)
# ll[4] = 1
# print(ll)
#2创建一个每一行都是从0到4的5*5矩阵
# # l_2 = np.array([[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4]])
# l_2 = np.array([ range(5)]*5).reshape(5,5)
# print(l_2)
# print(l_2.ndim) #2维
# print(l_2.shape)
# # 3假如给定一个3*3的二维数组,如何交换其中两行的元素?
# vv = np.random.randint(0,100,size=(3,3))
# print(vv)
# print(‘/ / / / / / / / / / / / / / / / / ‘)
# print(vv[[1,0,2]])
# print(vv[[2,0,1]])
# print(vv[[0,2,1]])
# # 4原数组为一维数组,内容为从 0 到 100,抽取出所有偶数。
# mm = np.arange(0,101).reshape(101,)
# print(mm)
# print(mm[::2]) #切片,步长
# mm = filter(lambda x:x%2==0, mm)
# # print(np.asarray(list(mm)))
# print(np.array(list(mm)))