NumPy(一):数组

nadarray

Numpy最重要的一个特点就是N维数组对象(nadarray),该对象是一个快速而灵活的大数据集容器。

a.创建nadarray

np.array(data)
data1 = [1,2,3,4]
arr1 = np.array(data1)
arr1
#array([1, 2, 3, 4])

除了np.array(data)可以创建数组,zerosones也可以创建指定形状全为0或全为1的数组,empty可以创建一个没有任何具体指的数组。

np.zeros((3,6))

array([[0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0.]])

np.empty((2,2))

array([[7.50639772e-312, 3.21450328e+164],
       [1.85692977e+216, 1.99392236e-077]])

其他数组创建函数

函数说明
array将列表,元组,数组或其他有序类型转化为ndarray
asarray将输入数据转化为ndarray,如果本身就是ndarray就不进行复制
arange类似于range,但返回的是nadarray而不是列表
ones,ones_like创建一个指定形状全为1的数组,ones_like以另一个数组为参考,根据其形状创建
zeros,zeros_like_同上
empty,empty_ike创建新数组,只分配空间不填充任何值
eye,identity创建一个正方N*N的单位矩阵(对角线为1,其余为0)

array与asarray的区别
当数据源是ndarray时,array仍会copy出一个副本,占用新的内存,但asarray不会

#输入数据不是ndarray类型 array与asarray一样
data1=[[1,1,1],[1,1,1],[1,1,1]]  
arr2=np.array(data1)  
arr3=np.asarray(data1)  
data1[1][1]=2  
print('data1:\n',data1)  
print('arr2:\n',arr2) 
print('arr3:\n',arr3)

data1:
 [[1, 1, 1], [1, 2, 1], [1, 1, 1]]
arr2:
 [[1 1 1]
 [1 1 1]
 [1 1 1]]
arr3:
 [[1 1 1]
 [1 1 1]
 [1 1 1]]
#输入数据是ndarray类型 array与asarray的不同
arr1=np.ones((3,3))  
arr2=np.array(arr1)  
arr3=np.asarray(arr1)  
arr1[1]=2  
print('arr1:\n',arr1)  
print('arr2:\n',arr2) 
print('arr3:\n',arr3)

arr1:
 [[1. 1. 1.]
 [2. 2. 2.]
 [1. 1. 1.]]
arr2:
 [[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]
arr3:
 [[1. 1. 1.]
 [2. 2. 2.]
 [1. 1. 1.]]

zeros_like使用方法

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

array([[0, 0, 0],
       [0, 0, 0]])

numpy.eye()与np.identity()

numpy.eye(N,M=None,k=0,dtype=<class 'float'>,order='C)1)N:int型,表示的是输出的行数

(2)M:int型,可选项,输出的列数,如果没有就默认为N

(3)k:int型,可选项,对角线的下标,默认为0表示的是主对角线,负数表示的是低对角,正数表示的是高对角。

(4)dtype:数据的类型,可选项,返回的数据的数据类型

(5)order:{‘C’,‘F'},可选项,也就是输出的数组的形式是按照C语言的行优先’C',还是按照Fortran形式的列优先‘F'存储在内存中

import numpy as np
 
a=np.eye(3)
print(a)
 
a=np.eye(4,k=1)  #右上移动1
print(a)
 
a=np.eye(4,k=-1)
print(a)
 
a=np.eye(4,k=-3)

[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
[[0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]
 [0. 0. 0. 0.]]
[[0. 0. 0. 0.]
 [1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]]
[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]
np.identity(n,dtype=None)
参数:n,int型表示的是输出的矩阵的行数和列数都是n

dtype:表示的是输出的类型,默认是float

返回的是nxn的主对角线为1,其余地方为0的数组

import numpy as np
 
a=np.identity(3)
print(a)

[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]

b.ndarray的属性

属性说明
ndarray.shape数组维度的元组
ndarray.ndim数组维度
ndarray.size数组中的元素量
ndarray.itemsize一个数组元素的长度(字节)
ndarray.dtype数组元素的类型
data2 = np.array(
    [[1,2,3],
    [4,5,6]]
)
print('data2.shape:',data2.shape)
print('data2.ndim:',data2.ndim)
print('data2.size:',data2.size)
print('data2.itemsize:',data2.itemsize)
print('data2.dtype:',data2.dtype)

data2.shape: (2, 3)
data2.ndim: 2
data2.size: 6
data2.itemsize: 4
data2.dtype: int32

c.ndarray的类型

arr1 = np.array([1,2,3],dtype = np.float64)
arr2 = np.array([1,2,3],dtype = np.int32)
print(arr1.dtype)
print(arr2.dtype)

float64
int32

Numpy的dtype有:浮点数,复数,整数,布尔值,字符串,还有python对象。
修改dtype的值ndarray.astype

arr = np.array([1,2,3],dtype = np.float64)
float_arr = arr.astype(np.float)
print(float_arr.dtype)

float64
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值