Numpy基础:数组、矢量计算以及ufunc通用函数使用

本文详细介绍了Numpy的ndarray对象,包括常用的数组创建方法、数组与标量的运算、索引与切片、数组转置和轴对换,以及重点讨论了通用函数(ufunc)的元素级运算。通过实例展示了如何进行矢量化处理、广播功能和布尔型索引,强调了ufunc在数据处理中的高效性。
摘要由CSDN通过智能技术生成

Numpy-darray多数组对象

ndarry是一种通用的同构数据多维容器,即,容器里的所有元素都是相同类型的。每个数组元素都有一个shape(多维数组的行列数)和dtype(元素类型)属性。

1 常用的数组创建函数

函数 说明
array 将输入数据(列表、元组、数组、或其他序列类型)转换成narray,可以在转换的过程中指定dtype,或者默认与原数据类型相同
asarray 将输入数据转换成ndarray,如果输入本身就是一个ndarray就不进行复制
arange 类似于内置的range,但返回的是一个narray而不是一个列表
ones、ones_like 根据指定的形状和dtype创建全1数组。ones_like以另外一个数组为参数,并根据其形状和dtype穿件一个全1数组
zeros、zeros_like 类似于ones、ones_like,但是创建的是全0数组
empty、empty_like 创建新数组,只分配内存空间但不填充任何值
eye、identity 创建单位方阵
import numpy as np


#生成一个原始数组
arrayInit = np.arange(2,10,2)
arrayInit
array([2, 4, 6, 8])
print arrayInit.shape,arrayInit.dtype
(4L,) int32

可以通过reshape(n,m)来改变原始数组的行列分布

arrayInit.reshape(2,2)
array([[2, 4],
       [6, 8]])

注意reshape并不改变原来的数组

演示使用asarray

np.asarray(arrayInit)
array([2, 4, 6, 8])
arrayInit
array([2, 4, 6, 8])
arrayOne = np.arange(6).reshape(2,3)
arrayOne
array([[0, 1, 2],
       [3, 4, 5]])
np.asarray(arrayOne)
array([[0, 1, 2],
       [3, 4, 5]])
tem = [1,2,3]
np.asarray(tem)
array([1, 2, 3])
tem
[1, 2, 3]

从上述代码中可以看出,这些函数仅是创建新的narray,并不改变原来的输入数据,若想保留该创建需要创建新的变量

2 数组和标量之间的运算

矢量化:可以对数据执行批量运算。数组可以实现矢量化,大小相等的数组之间的任何算数运算都会将运算应用到元素级

arrayTwo = np.array([[1,2,3],[4,5,6]])#将列表转换成narray
arrayTwo
array([[1, 2, 3],
       [4, 5, 6]])
arrayTwo * arrayTwo
array([[ 1,  4,  9],
       [16, 25, 36]])
arrayTwo**2<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨岚❤️

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值