【numpy】笔记

【numpy】笔记,第1张

【numpy】笔记

【numpy】笔记
  • 一、什么是numpy?
  • 二、创建数组
  • 三、数组的形状
  • 四、numpy读取数据
  • 五、numpy索引和切片
  • 六、numpy中数值的修改
    • 6.1、布尔修改法
    • 6.2、where()
    • 6.2、clip()
  • 七、数组的拼接
  • 八、numpy常用方法
  • 九、常用的统计函数
  • 十、数组广播

一、什么是numpy?

一个在Python中做科学计算的基础库,重在数值计算,也是大部分PYTHON科学计算库的基础库,多用于在大型、多维数组上执行数值运算

二、创建数组
import random
import numpy as np

#使用numpy生成数组,得到ndarray的类型
t1=np.array([1,2,3,4])
print(t1.dtype) #int32

t2 =np.array (range(1,4) ,dtype=float)
print(t2.dtype)

#调整数据类型
t3 = t2.astype("int8")
print(t3.dtype)

#numpy中的小数
t4 = np.array ([random.random() for i in range( 10)])
print(t4)
print(t4.dtype),

#修改小数位
t5 = np.round(t4,2)
print(t5)
三、数组的形状

shape()返回值
(m)代表m列
(m,n)代表m行n列的矩阵
(aXmXn)代表a个m行n列的矩阵

t6=np.array([[1,2,3],[4,5,6]])
print(t6.shape) #(2, 3)
print(t6.reshape(6))
print(t6.flatten()) #扁平化(一维)
四、numpy读取数据
np.loadtxt(frame.dtype=np.float.delimiter=None,skiprows=O,usecols=None,unpack=False)
参数解释frame文件、字符串或产生器,可以是.gz或bz2压缩文件dtype数据类型,可选,CSV的字符串以什么数据类型读入数组中,默认np.floatdelimiter分隔字符串,默认是任何空格,改为逗号skiprows跳过前x行,一般跳过第一行表头usecols读取指定的列,索引,元组类型unpack如果True,读入属性将分别写入不同数组变量,False 读入数据只写入一个数组变量,默认False 五、numpy索引和切片
data[1]#取一行
data[:,2]#取一列
data[1:3]#取多行
data[:,2:4]#取多列
data[[2,8,10]]#取不连续的多行
data[:,[0,2]]#取不连续的多列
data[2:5,1:4]#取多行和多列,取第3行到第五行,第2列到第4列的结果
data[[0,2],[0,1]]#取多个不相邻的点
六、numpy中数值的修改 6.1、布尔修改法
data[data<10]= 666# 修改data里小于10的值为666
6.2、where()
np.where(data<10,0,10)# 把data中小于10的改为0,否则改为10
6.2、clip()
data.clip(10,18)#小10的替换为10、大于18的替换为了18.
七、数组的拼接
np.vstack ((t1,t2)) #竖直拼接(vertically) 上下
np.hstack ((t1,t2)) #水平拼接(horizontally)左右

t[[1,2],:] = t[[2,1],:]#行交换
t[ :,[0,2]] = t[:,[2,0]]#列交换

八、numpy常用方法
#构造全为0的数据
np.zeros((2, 1))

#构造全为1的数据
np.ones((2, 1))

#获取最大值最小值的位置
np.argmax(t.axis=O)
np.argmin(t.axis=1)

#创建一个对角线为1的正方形数组(方阵):
np.eye(3)

#创建3列随机数矩阵
np.random.rand(3)

a = b.cope()#复制,a和b互不影响
九、常用的统计函数

求和:t.sum(axis=None)
均值: t.mean(a,axis=None)受离群点的影响较大
中值: np.median(t.axis=None)
最大值: t.max(axis=None)最小值:t.min(axis=None)
极值: np.ptp(t.axis=None)即最大值和最小值只差

十、数组广播

广播原则:
如果两个数组的后缘维度(即:从末尾开始算起的维度)的轴长相符或其中一方的长度为1,则认为它们是广播兼容的,广播会在缺失和(或)长度为1的轴上进行.

ndarray.ndim
维度个数,也就是数组轴的个数,比如一维、二维、三维等数组的维度。这是一个整数的元组,表示每个维度上数组的
ndarray.shape
大小。例如,一个n行和m列的数组,它的shape属性为(n,m)
ndarray.size
数组元素的总个数,等于shape属性中元组元素的乘积
描述数组中元素类型的对象,既可以使用标准的 Python类型
ndarray.dtype
创建或指定,也可以使用NumPy特有的数据类型来指定,比如numpy.int32、numpy.float64等
数组中每个元素的字节大小。例如,元素类型为float64的数
ndarray.itemsize
组有8(64/8)个字节,这相当于ndarray.dtype.itemsize
arange()
通过arange()函数可以创建一个等差数组,它的功能类似于range(),只不过arange()函数返回的结果是数组,而不是列表 np.arange(1, 20, 5)
unique()
unique()函数来找出数组中的唯一值,并返回排序后的结果
in1d()
in1d()函数用于判断数组中的元素是否在另一个数组中存在,该函数返回的是一个布尔型的数组

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5679749.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存