python numpy(1)数组创建和变换

NumPy是使用Python进行科学计算的基础软件包。

导入:

import numpy as np

NumPy 提供了一个非常强大的N维数组对象 Ndarray。

ndarray数组包含两部分,实际的数据和描述数据的元数据(数据维度、数据类型等),用轴表示保存数组的维度,秩表示轴的数量。

>>>a = nd.array([[1,2,3],[4,5,6]])
>>>a
array([[1,2,3],
      [4,5,6]])
>>>print(a)#ndarray对象输出成[],元素由空格分隔
[[1 2 3],
 [4 5 6]]
>>>print(type(a))
<class 'numpy.ndarray'>
ndarray数组创建:

1.x = np.array(list/tuple[,dtype])

>>>li = [1,2,3,4.1]
>>>a = np.array(li,dtype='int32')
>>>print(a)
[1,2,3,4]

2.使用numpy函数

>>>a = np.arange(5);print(a) #类似range()函数,产生从0到n-1的一位数组
[0,1,2,3,4]
>>>a = np.ones((3,2),dtype='int32');print(a) #根据指定的(n,m)形状生成全1数组
[[1 1]
 [1 1]
 [1 1]]
>>>a = np.zeros((3,2));print(a) #同上生成全0数组
[[0 0]
 [0 0]
 [0 0]]
>>>a = np.full((2,3),2.1);print(a)#根据指定的(n,m)形状生成同值数组
[[2.1 2.1 2.1]
 [2.1 2.1 2.1]]
>>>a = np.eye(2);print(a) #生成n*n矩阵,对角线为1,其它全为0
[[1. 0.] 
 [0. 1.]]
>>>b = np.ones_like(a)
>>>b = np.zeros_like(a)
>>>b = np.full_like(a,val)#上述函数演变而成,只是依据a的形状
>>>a = np.linspace(1,10,endpoint=False);print(a)#根据起止等间距填充数据
[1.   3.25 5.5  7.75]
>>>c = np.concatenate((a,b))#将多个数组合并成为一个新数组
ndarray对象属性:
属性说明
.shape尺寸,即对于矩阵,n行m列
.ndim秩,即轴的数量或维度的数量
.size元素的个数,相当于.shape中的n*m
.dtype元素的类型
.itemsize每个元素的大小,以字节为单位
ndarray数组维度变换:
>>>a = ones((2,3,4),dtype=np.int32)
>>>a.reshape((3,8))#不改变原数组,返回一个shape形状的新数组
array([[1 1 ... 1 1] 
       [1 1 ... 1 1] 
       [1 1 ... 1 1]])
>>>a.resize((3,8))#同.reshape()但改变原数组
>>>a.fltten()#原数组不变,返回降维后的一维数组
array([1,1...1,1])
>>>a.swapaxes(1,2)#交换轴数量,不改变原数组(轴从0开始索引)
array([[[1 1 1]   
        [1 1 1]   
        [1 1 1]   
        [1 1 1]]  

        [[1 1 1]   
         [1 1 1]   
         [1 1 1]   
         [1 1 1]]])
ndarray数组类型变换:
>>>a = np.ones((2,3,4),dtype=np.int)
>>>a
array([[[1, 1, 1, 1],  
        [1, 1, 1, 1],  
        [1, 1, 1, 1]], 

       [[1, 1, 1, 1],  
        [1, 1, 1, 1],  
        [1, 1, 1, 1]]])
>>>b = a.astype(np.float)#新生成一个数组改变原数组类型
>>>b
array([[[1., 1., 1., 1.],  
        [1., 1., 1., 1.],  
        [1., 1., 1., 1.]], 

       [[1., 1., 1., 1.],  
        [1., 1., 1., 1.],  
        [1., 1., 1., 1.]]])
>>>ls = a.tolist()#将ndarray数组转换为列表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值