python array函数_NumPy基础:多维数组

本文介绍了NumPy库的基础知识,包括如何使用array函数创建多维数组,以及如何进行数据操作如转换类型、索引和切片。还探讨了广播(broadcasting)和矢量化运算的概念,以及布尔型索引和花式索引在数据选取中的应用。
摘要由CSDN通过智能技术生成

编辑推荐:

本文来源csdn,本文主要介绍花式索引和布尔型索引涉及到复制操作,其他的都是返回源数据的视图。

201811131.png

NumPy(Numerical Python的基础)是高性能科学计算和数据分析的基础包。其部分功能如下:

1.ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。

2.用于对数组数据进行快速运算的标准数学函数(无序编写循环)。

3.用于读写磁盘数据的工具及其用于操作内存映射文件的工具。

4.线性代数、随机数生成以及傅里叶变换功能。

5.用于集成由C、C++、Fortran等语言编写的代码的工具。

创建ndarray

创建数组最简单的办法就是使用array函数。它接受一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的NumPy数组。

列表的转换:

data1

= [6,7.5,8,0,1]

arr1 = np.array(data1)

# array([ 6. , 7.5, 8. , 0. , 1. ])

嵌套序列(比如由一组等长列表组成的列表)将会被转为一个多维数组:

data2

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

arr2 = np.array(data2)

# array([[1, 2, 3, 4],

# [5, 6, 7, 8]])

data2是一个list of lists, 所以arr2维度为2。我们能用ndim和shape属性来确认一下:

arr2.ndim

# 2

arr2.shape

# (2,4)

除非主动声明,否则np.array会自动给data搭配适合的类型,并保存在dtype里:

arr1.dtype

# dtype('float64')

arr2.dtype

# dtype('int64')

除了np.array,还有一些其他函数能创建数组。比如zeros,ones,另外还可以在一个tuple里指定shape:

np.zeros(10)

# array([ 0., 0., 0., 0., 0., 0., 0., 0., 0.,

0.])

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,3,2))

# array([[[ 0.00000000e+000, 0.00000000e+000],

# [ 2.16538378e-314, 2.16514681e-314],

# [ 2.16511832e-314, 2.16072529e-314]],

# [[ 0.00000000e+000, 0.00000000e+000],

# [ 2.14037397e-314, 6.36598737e-311],

# [ 0.00000000e+000, 0.00000000e+000]]])

np.empty并不能保证返回所有是0的数组,某些情况下,会返回为初始化的垃圾数值,如上。

arange是一个数组版的python range函数:

np.arange(15)

# array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,

11, 12, 13, 14])

一些创建数组的函数:

201811132.png

ndarray的数据类型

dtype保存数据的类型:

arr1

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

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

arr1.dtype

# dtype('float64')

arr2.dtype

# dtype('int32')

dtype才是numpy能灵活处理其他外界数据的原因。

201811133.png

201811134.png

可以用astype来转换类型:

arr

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

arr.dtype

# dtype('int64')

float_arr = arr.astype(np.float64)

float_arr.dtype

# dtype(&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值