关于np.array(np里的数组)

c= np.array([[1,2,3],
        [4,5,6],
        [7,8,9],
        [10,11,12]
        ])
c.ndim ##2,维度信息
c.shape ##(4, 3)
c.size ##12
c.dtype ##dtype('int32'),array中元素的种类
##生成一个全是1的ndarray
np.ones(10) ##array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
##生成一个全是0的ndarray
np.zeros(10) ##array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
##连接array
np.concatenate([np.ones(10),np.zeros(10)])
##生成一个四行三列全是1的ndarray,逻辑:先生成一个全是1的一维数组,再改变其形状到四行三列
np.ones(12).reshape(4,3)
##生成一个0-1均匀
##逻辑:np内有一个random包可以生成随机数字,在random内有一个random的功能函数可以生成一个均匀分布的随机数字
np.random.random(100).reshape(10,10)
np.random.randn(100).reshape(10,10) ##生成标准正态分布
##定义一个2行5列的数组
a = np.ones(10).reshape(2,5)
'''array([[1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.]])'''
np.zeros_like(a) #生成一个与a同样维度的数组
np.arange(1,5) #array([1, 2, 3, 4])
np.arange(1,101).reshape(10,-1)
##数据变成一维,
np.arange(1,101).reshape(10,-1).ravel()##ravel()可以把多维数据变成一维
##数据转置
a = np.random.randn(100).reshape(10,10)
a.T
##筛选大于0.5值,数据会变成一维
a[a>0.5]
a = np.arange(2,6).reshape(2,2)
b = np.arange(2,6).reshape(2,2)
##加、减、乘除都是对应元素进行
a+b
##.dot可以进行矩阵乘法
a.dot(b)
##常用数学函数
np.exp([1,2,3]) ##e的多少次方,array([ 2.71828183,  7.3890561 , 20.08553692])
np.sqrt([1,2,3]) ##求根号运算,array([1.        , 1.41421356, 1.73205081])
np.isnan(np.array(1)/np.array(0)) ##判断,False,正无穷和not a number不是一个事情
##切片
a = np.arange(12).reshape(4,3)
a
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11]])
a[1,1] #第二行,第二列:4
a[0,:] #array([0, 1, 2]),切片,拿到第一行
a[:,0] #array([0, 3, 6, 9]),切片,拿到第一列
a[0:2,:] ##前两行
a[[0,1],:]#读取前两行,方法不一样,这个例子主要事项告诉大家如何选取不连续切片
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章