运用numpy进行数组、向量、矩阵运算

本文详细介绍了numpy库在数组运算、数据处理、随机生成和存储读取等方面的应用,包括创建array、数据类型转换、数组运算、布尔值索引、通用函数、条件逻辑表达、数学统计方法、排序、去重以及线性代数操作。通过实例演示了numpy在大数据分析中的高效性能。
摘要由CSDN通过智能技术生成

众所周知,python中3个用于数学计算的库分别是:numpy scipy pandas。之前已经介绍过了pandas的用法,这篇笔记主要介绍numpy用法。因为numpy是直接封装c语言,所以速度上达到了类似于在c++里面掉包的程度,当然,本身比python自带的数据结构快了n倍。尤其是在大数据处理的时候,差距更为明显。

import numpy as np
import pandas as pd

1.array数组

1.1创建array数组

  • np.array
  • np.zeros/empty/ones:传入形状即可
  • np.arange():比range更强大
  • np.diag():对角阵

详细的见下面图片和例子
1.png

data1 = [6,7.5,8,0,1]
arr1 = np.array(data1)#创建array
print(arr1)

data2 = [data1,data1]
arr2 = np.array(data2) #多维度
print(arr2)
[ 6.   7.5  8.   0.   1. ]
[[ 6.   7.5  8.   0.   1. ]
 [ 6.   7.5  8.   0.   1. ]]
print(arr1.shape,arr2.shape)
print(arr1.dtype,arr2.dtype)
(5,) (2, 5)
float64 float64
print(np.zeros(10)) #创建都是0的array
print(np.empty([2,3,2],dtype=float)) #都是空的array
[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.]
[[[ 0.  0.]
  [ 0.  0.]
  [ 0.  0.]]

 [[ 0.  0.]
  [ 0.  0.]
  [ 0.  0.]]]
print(np.arange(15)) # 类似range函数,但更强大
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]
print(np.diag((1,2,3)))# 创建对角阵
x = np.arange(10,19).reshape((3,3))
print(x)
print(np.diag(x)) #提取对角
print(np.diag(x,1)) #注意对角线的位置
[[1 0 0]
 [0 2 0]
 [0 0 3]]
[[10 11 12]
 [13 14 15]
 [16 17 18]]
[10 14 18]
[11 15]

1.2array数据类型

  • 要使用astype来进行转化。转化的过程中产生一份拷贝。

2.png

arr1 = np.array([1,2,3],dtype=np.float64) #初始化显式声明
print(arr1.dtype)
float64
int_arr1 = arr1.astype(np.int) # 类型转化
print(int_arr1.dtype)
#浮点型=>整型。向下取整

strintArr = np.array(['15','1.6'],dtype=np.string_)
print(strintArr)
print(strintArr.astype(np.float))
int32
[b'15' b'1.6']
[ 15.    1.6]

1.3数组运算

不用再写循环了,运算符号会被映射到每个element

1.4切片和索引

注意:如果需要一份拷贝(副本),而不是视图,需要调用arr.copy()/arr[索引]copy()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值