python输入数组并计算_Python3 NumPy基础:数组和矢量计算

本文介绍了NumPy的基础知识,包括ndarray对象、数据类型、数组创建、数组运算以及一些高级特性如转置、轴对换、通用函数和线性代数操作。通过实例展示了如何进行元素级计算、布尔型索引、花式索引以及文件输入输出等,是学习NumPy的入门指南。
摘要由CSDN通过智能技术生成

目录

NumPy介绍:

NumPy是高性能科学计算和数据分析的基础包。

部分功能如下:

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

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

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

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

用于继承C、C++、Fortran等语言编写的代码的工具

ndarray:

ndarray是一种多维数组对象,它的所有元素必须是相同类型的,每个数组都有一个shape(表示各维度大小的元组)和一个的dtype(表示数组数据类型的对象)

创建ndarray:

函数

说明array

将输入数据(列表、元组、数组或其他序列类型)转换为ndarray,可传dtype参数指定数据类型,不传dtype参数numpy会自动推断数据类型。默认直接复制输入数据。

asarray

将输入转换成ndarray,如果输入本身就是ndarray就不进行复制

arange

类似于range,但返回的是一个ndarray不是生成器

ones、ones_like

ones根据指定形状(一个用来定义维度的元组)和dtype创建一个全1数组,ones_like以另一个ndarray数组为参数,并根据形状和dtype创建一个全1数组

zeros、zeros_like

类似于ones和ones_like,只不过返回的是全0数组

empty、empty_like

类似于ones和ones_like,之分配空间不填充任何数值(随机数字)

eye、identity

创建一个正方的N×N单位矩阵(对角线为1,其余全为0)

ndarray的数据类类型:

类型

类型代码

说明int8、uint8

i1、u1

有符号和无符号的8位(1字节)整型

int16、uint16

i2、u2

有符号和无符号的16位(2字节)整型

int32、uint32

i4、u4

有符号和无符号的32位(4字节)整型

int64、uint64

i8、u8

有符号和无符号的64位(8字节)整型

float16

f2

半精度浮点数

float32

f4或f

标准的单精度浮点数,与C的float兼容

float64

f8或d

标准的双精度浮点数,与C的double和Python的float兼容

float128

f16或g

扩展精度浮点数

complex64、complex128、complex256

c8、c16、c32

分别用32位、64位和128位浮点数表示的复数

bool

?

存储True和False的布尔类型

object

O

Python对象类型

string_

S

固定长度的字符串类型(每个字符一个字节)。例如,创建一个长度为10的字符串应使用S10。

unicode_

U

固定长度的unicode类型(字节数由平台决定)。和字符串定义方式一样(如U10)

使用ndarray的astype方法可以转换ndarray的数据类型。

In [28]: a1=array([1, 2, 3])

In [30]: a1.astype('S1')

Out[30]: array([b'1', b'2', b'3'], dtype='|S1')

数组和标量之间的运算:

数组之间的运算:

大小相等的数组之间的任何算术运算都会应用到元素级。

In [35]: a1=np.arange(6).reshape((2,3))

In [38]: a1*a1

Out[38]:

array([[ 0, 1, 4],

[ 9, 16, 25]])

In [39]: a1+a1

Out[39]:

array([[ 0, 2, 4],

[ 6, 8, 10]])

大小相同的数组之间的比较会生成布尔值数组:

In [57]: arr2 = np.array([[0., 4., 1.], [7., 2., 12.]])

In [58]: arr2

Out[58]:

array([[ 0., 4., 1.],

[ 7., 2., 12.]])

In [59]: arr2 > arr

Out[59]:

array([[False, True, False],

[ True, False, True]], dtype=bool)

数组和标量之间的运算:

数组与标量的运算会把标量值广播到数组的每个元素。

In [40]: a1 / 1

Out[40]:

a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值