NumPy - ndarray

  • ndarray——N维数组
    NumPy中基本的数据结构;
    所有元素是同一种类型;
    别名为array;
    利于节省内存和提高CPU计算时间;
    有丰富的函数。
  • ndarray数组属性
    维度称为轴,轴的个数称为秩(rank)。
    纵向为第0轴,横向为第1轴(axis)
基本属性说明
ndarray.shape维度
ndarray.ndim
ndarray.size元素总个数
ndarray.dtype元素类型
ndarray.itemsize元素字节大小
  • ndarray的创建
创建方法说明
arange
array
copy
empty
empty_like
eye
fromfile
fromfunction从一个函数来创建数组
identity
linspace从起始点到终止点以及个数确定情况下创建一个等差数组
logspace
mgrid
ogrid
ones
ones_like
r
zeros
zeros_like
# array创建ndarray
x = np.array([(1,2,3), (4,5,6)])

x
Out[48]: 
array([[1, 2, 3],
       [4, 5, 6]])
# arange创建ndarray
y = np.arange(1,10,0.5)

y
Out[54]: 
array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5, 6. , 6.5, 7. ,
       7.5, 8. , 8.5, 9. , 9.5])
  • ndarray的操作
常用操作说明
reshape不改变原数组
resize改变原数组
vstack在垂直方向上拼接
hstack在水平方向上拼接

切片:

x
Out[55]: 
array([[1, 2, 3],
       [4, 5, 6]])

print(x[:, [0,1]])  #第一维表示行,第二维表示列 >第一维不写,表示行都要
[[1 2]
 [4 5]]
 
print(x[1, [0,1]])
[4 5]

print(x[[0,1], :])
[[1 2 3]
 [4 5 6]]

对于形状不相似的数组,采用广播思想:

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

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

a + b
Out[63]: 
array([[2, 4, 6],
       [5, 7, 9]])
  • ndarray的运算
    axis = 0 #列
    axis = 1 #行
函数说明
sum求和
mean平均值
std标准差
var方差
min返回最小值
max返回最大值
argmin返回最小值的索引
argmax返回最大值的索引
cumsum
cumprod
  • 线性代数
常用函数说明
dot矩阵内积
linalg.det行列式
linalg.inv逆矩阵
linalg.solve多元一次方程组求根
linalg.eig求特征值和特征向量
  • ndarray的ufunc(通用)函数
    ufunc(universal function)是一种能对数组的每个元素进行操作的函数。NumPy内置的许多ufunc函数都是在C语言级别实现的,计算速度非常快。
    在数据量比较大的时候,同一个任务尽量选用Numpy中的通用函数来处理:
    add, all, any, arange, apply_along_axis, argmax, argmin, argsort, average, bincount, ceil, clip, conj, corrcoef, cov, cross, cumprod, cumsum, diff, dot, exp, floor,…
# 计算一组数的sin(t)的二次方

import time
import math
import numpy as np

# math库函数执行时间
x = np.arange(0,100,0.01)
t_m1 = time.clock()
for i,t in enumerate(x):
    x[i] = math.pow((math.sin(t)), 2)
t_m2 = time.clock()

# 通用函数执行时间
y = np.arange(0, 100, 0.01)
t_n1 = time.clock()
y = np.power(np.sin(y), 2)
y = np.arange(0,100,0.01)
t_n2 = time.clock()

print('Running time of math:', t_m2-t_m1)
print('Running time of numpy:', t_n2-t_n1)

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值