Numpy 的介绍
Numpy包是Python科学计算中的核心工具包之一,它提供了高性能多维数组结构-ndarray和用来操控这些数组的各种工具和函数
Numpy 的对象–ndarray数组
1.初始化数组
import numpy as np
np.empty(shape, dtype = float)
np.zeros(shape, dtype = float)
np.ones(shape, dtype = None)
2.创建数组
import numpy as np
np.array(object, dtype = None)
3.创建数值范围的数组
import numpy as np
np.arange(start, stop, step, dtype) # 区间范围为前闭后开
ndarray – 数组结构
1.dtype 查看数据类型
arr.dtype
2.ndarray.astype 转换数据类型
import numpy as np
arr= np.array([[1,2,3],[4,5,6]])
arr.astype('float')
3.ndarray.shape查看数组的形状
import numpy as np
arr= np.array([[1,2,3],[4,5,6]])
arr.shape
4.ndarray.reshape函数来调整数组大小
import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
arr1 = arr.reshape(3,2) # 转变成三行两列
Numpy – 功能
1.切片和索引
通过将由冒号分隔的切片参数(start:stop:step)直接提供给ndarray对象
import numpy as np
nda = np.arange(10)
nda1 = nda[2:6:2]
nda2 = nda[2:]
n = np.array([[1,2,3],[3,4,5],[4,5,6]])
nda3 = n[1:2,2:3] # 提取第2,3行和3,4列
2.高级索引
分为整数索引和布尔值索引
(1)整数索引
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6]])
arr1 = x[[0,1,2], [1,1,0]]
输出结果包括数组中(0,1),(1,1)和(2,0)位置处的元素
(2)布尔索引
当结果对象是布尔运算(例如比较运算符)的结果时,将使用此类型的高级索引
3.广播
原则:如果两个数组的后缘维度(即:从末尾开始算起的维度)的轴长相符或其中一方的长度为1,则认为它们是广播兼容的,广播会在缺失和(或)长度为1的轴上进行.。
import numpy as np
arr1 = np.array([10,20,30])
arr2 = np.array([[1,2,3],[4,5,6],[7,8,9]])
(1,3)+(3,4)可以广播
Numpy – 数组的操作
import numpy as np
arr = np.array([[1,2],[3,4]])
arr.T # 数组的转置 -->[[1,3],[2,4]]
arr.ravel() # 扁平化数组 --> [1,2,3,4]
arr.reshape(4,1)
arr.resize((2,3))
np.append(arr, [[5,6]])
np.insert(arr, 3,[5,6])
np.delete(arr, 1)
np.concatenate(arr,arr)
np.hstack((arr,arr))
np.vstack((arr,arr))
np.split(arr,2)
arr.tolist() # 将数组转换为列表
NumPy – 字符串函数
序号 | 函数的描述 |
---|---|
1 | np.char.add() 返回两个 str 数组的逐个字符串连接 |
2 | np.char.multiply() 执行多重连接 |
3 | np.char.upper() 返回一个数组,其元素转换为大写 |
4 | np.char.lower() 返回一个数组,其元素转换为小写 |
5 | np.char.split() 返回字符串中的单词列表,并使用分隔符来分割 |
6 | np.char.splitlines() 返回元素中的行列表,以换行符分割 |
7 | np.char.strip() 返回数组副本,其中元素移除了开头或者结尾处的特定字符 |
8 | np.char.replace() 返回字符串的副本,其中所有子字符串的出现位置都被新字符串取代 |
9 | np.char.join() 返回一个字符串,它是序列中字符串的连接 |
10 | np.char.center() 返回给定字符串的副本,其中元素位于特定字符串的中央 |
常见函数的详细介绍
1.np.char.add()
import numpy as np
print(np.char.add(['doudou'],[' xueyuan']))
# --> ['doudou xueyuan']
print(np.char.add(['hello', 'doudou'],[' good', ' xueyuan']))
--> ['hello good' 'doudou xueyuan']
2.np.char.split()
import numpy as np
print(np.char.split ('hello welcome to doudouxueyuan'))
--> ['hello', 'welcome', 'to', 'doudouxueyuan']
3.np.char.strip()
函数返回数组的副本,其中元素移除了开头或结尾处的特定字符
import numpy as np
print(np.char.strip(['hello', 'welcome', 'to', 'doudouxueyuan'],'o'))
4.np.char.replace()
import numpy as np
print(np.char.replace ('hello welcome to doudouxueyuan', 'hello ', 'hi'))
5.np.char.join()
这个函数返回一个字符串,其中单个字符由特定的分隔符连接。
import numpy as np
print(np.char.join(':','dmy'))
print(np.char.join([':','-'],['dmy','ymd']))
NumPy – 数组的运算
import numpy as np
np.nan is np.nan #--> True
np.nan == np.nan #--> False
# 比较运算符 返回布尔数组
a == b # 逐元素比较,返回等维布尔数组
# 算数运算符
a+b,a-b,a*b,a/b
a.dot(b) # 进行数量积运算
a.max(a) # min mean (可以指定轴的方向 axis=1)
np.std(a) # 标准差
a.sort(axis=1) # 指定维度方向增序排序数组
a.copy() # 深拷贝数组
np.copy(a) # 浅拷贝数组
np.exe(a), np.sqrt(a), np.log(a), np.sin(a) # 幂,开放,取对数,正弦,
以上就是近期对Python科学计算库numpy的理解与常用的方法的整理,以后遇到常用的随时补充。下一篇我们来与pandas认识一下,下篇见→.→