Numpy教材知识(1)

import numpy as np

#array创建已有数据数组

data1 = [1,3,5,7,9,2,4,6,8,0]

w1 = np.array(data1)

w2 = np.array([1,2,3,4],dtype = 'float64')

print('w1=:',w1)

print('w2.dtype=:',w2.dtype)

#生成数组

arr1 = np.arange(10)

arr2 = np.arange(0,1,0.2)

arr3 = np.linspace(0,1,5)            #多用于浮点型

arr4 = np.logspace(0,1,5)            #等比 !!!是10的0和1次方    默认50个

arr5 = np.zeros(4)                   #全0数组

arr6 = np.ones([4,4])                #全1数组

arr7 = np.diag([1,2,3,4])            #主对角线为指定值,其余为0

#属性转换

data2=np.array([[1,2,3],[4,5,6]])

data2.ndim                           #秩:2(几维数组)

data2.shape                          #形状:(2,3)

data2.size                           #元素个数:6

data2.itemsize                       #单个字节大小:4   !有整型和浮点型,为8

data2.shape = 3,2                    #修改数组形状,原数组改变----reshape函数不改变

print(data2.astype(np.float64))             #将data2整型数据改为了浮点型

#随机数生成

np.random.randint(low,high = None,size = None)

warray1 = np.random.randint(100,200,size = (2,4))

warray2 = np.random.rand(5)          #默认low=0,high=1

#数组变换

warray3 = arr1.reshape(5,2)

arr1.reshape(2,-1)                   #4位置的数为A,要求B=arr1.size,B%A==0时才可以写-1

data2.ravel()                        #数组一维化

data2.flatten()                      #数组一维化

data3 = data2 * 2

#不能写np.hstack((data2,data2*2))    !!!注意是双括号

np.hstack((data2,data3))             #横向合并

np.vstack((data2,data3))             #纵向合并

print('横向合并:',np.concatenate((data2,data3),axis = 1))

print('纵向合并:',np.concatenate((data2,data3),axis = 0))

data4 = np.arange(16).reshape(4,4)

np.hsplit(data4,2)

np.vsplit(data4,2)

print('横向分割:',np.split(data4,2,axis = 1))

print('纵向分割:',np.split(data4,2,axis = 0))

print('转置矩阵:',data2.transpose((1,0)))

data2.transpose((1,0))==data2.T      #数组的T属性转换

print('轴对换:',data2.swapaxes(0,1)) #轴对换

#数组的切片与索引

data5 = np.arange(12).reshape(3,4)

data5[2],data5[:1,:1],data5[0,1:3]   #不产生新数据

xx = data5[2].copy()                  #数组的复制

np.intersect1d(data5,data2)             #查找两个数组的相同元素

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值