导航:首页 > 编程语言 > pythonnumpy绝对值

pythonnumpy绝对值

发布时间:2023-02-15 09:09:58

⑴ 问一下python里的numpy的正确读法是什么

numpy读法是:英['nʌmpi],NumPy是Python中科学计算的基础包。

它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种例程,包括数学逻辑,形状操作,I / O离散傅立叶变换,随机模拟等等。

NumPy包的核心是ndarray对象。这封装了同构数据类型的n维数组,许多操作在编译代码中执行以提高性能。

NumPy数组和标准Python序列之间有几个重要的区别:

1、NumPy数组在创建时具有固定大小,与Python列表(可以动态增长)不同。更改ndarray的大小将创建一个新数组并删除原始数组。

2、NumPy数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同。例外:可以有(Python,包括NumPy)对象的数组,从而允许不同大小的元素的数组。

3、NumPy数组有助于对大量数据进行高级数学和其他类型的操作。通常,与使用Python的内置序列相比,这些操作的执行效率更高,代码更少。

4、越来越多的基于Python的科学和数学软件包正在使用NumPy数组;虽然这些通常支持Python序列输入,但它们在处理之前将这些输入转换为NumPy数组,并且它们通常输出NumPy数组。

⑵ python关于numpy基础问题

Python发展至今,已经有越来越多的人使用python进行科学技术,NumPY是python中的一款高性能科学计算和数据分析的基础包。
ndarray
ndarray(以下简称数组)是numpy的数组对象,需要注意的是,它是同构的,也就是说其中的所有元素必须是相同的类型。其中每个数组都有一个shape和dtype。
shape既是数组的形状,比如
复制代码
1 import numpy as np
2 from numpy.random import randn
3
4 arr = randn(12).reshape(3, 4)
5
6 arr
7
8 [[ 0.98655235 1.20830283 -0.72135183 0.40292924]
9 [-0.05059849 -0.02714873 -0.62775486 0.83222997]
10 [-0.84826071 -0.29484606 -0.76984902 0.09025059]]
11
12 arr.shape
13 (3, 4)
复制代码
其中(3, 4)即代表arr是3行4列的数组,其中dtype为float64
一下函数可以用来创建数组
array将输入数据转换为ndarray,类型可制定也可默认
asarray将输入转换为ndarray
arange类似内置range
ones、ones_like根据形状创建一个全1的数组、后者可以复制其他数组的形状
zeros、zeros_like类似上面,全0
empty、empty_like创建新数组、只分配空间
eye、identity创建对角线为1的对角矩阵
数组的转置和轴对称
转置是多维数组的基本运算之一。可以使用.T属性或者transpose()来实现。.T就是进行轴对换而transpose则可以接收参数进行更丰富的变换
复制代码
arr = np.arange(6).reshape((2,3))
print arr
[[0 1 2]
[3 4 5]]
print arr.T
[[0 3]
[1 4]
[2 5]]
arr = np.arange(24).reshape((2,3,4))
print arr
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
print arr.transpose((0,1,2))
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
复制代码
数组的运算
大小相等的数组之间做任何算术运算都会将运算应用到元素级别。
复制代码
1 arr = np.arange(9).reshape(3, 3)
2 print arr
3
4 [[0 1 2]
5 [3 4 5]
6 [6 7 8]]
7
8 print arr*arr
9
10 [[ 0 1 4]
11 [ 9 16 25]
12 [36 49 64]]
13
14 print arr+arr
15
16 [[ 0 2 4]
17 [ 6 8 10]
18 [12 14 16]]
19
20 print arr*4
21
22 [[ 0 4 8]
23 [12 16 20]
24 [24 28 32]]
复制代码
numpy的简单计算中,ufunc通用函数是对数组中的数据执行元素级运算的函数。
如:
复制代码
arr = np.arange(6).reshape((2,3))
print arr
[[0 1 2]
[3 4 5]]
print np.square(arr)
[[ 0 1 4]
[ 9 16 25]]
复制代码
类似的有:abs,fabs,sqrt,square,exp,log,sign,ceil,floor,rint,modf,isnan,isfinite,isinf,cos,cosh,sin,sinh,tan,tanh,
add,subtract,multiply,power,mod,equal,等等

⑶ Python-Numpy基础

如果你已经装有 Anaconda,那么你可以使用以下命令通过终端或命令提示符安装 NumPy:
conda install numpy
如果你没有 Anaconda,那么你可以使用以下命令从终端上安装 NumPy:
pip install numpy
安装好 NumPy 后,你就可以启动 Jupyter notebook 开始学习了。接下来从 NumPy 数组开始

就好比一个矩阵

numpy.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组:

参数说明:
参数 描述
shape 数组形状
dtype 数据类型,可选
order 有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。
举例

输出结果

创建指定大小的数组,数组元素以 0 来填充:

举例

结果输出

创建指定形状的数组,数组元素以 1 来填充:

举例

同样是类型,但是注意这个和上边的区别,一个是数组的形式,一个是矩阵的形式。

⑷ (Python)numpy 常用操作

不放回取样:
从列表ori中不放回地取n个数

通过这种操作,我们可以获得一个二维列表的子集:
(如果这个二维列表是图的邻接矩阵,那么就是对图进行随机采样,获得一个图的子图)

首先要注意,"+" 操作对于list和numpy.array是完全不同的
python 中的list,"+"代表拼接:

在numpy.array中,"+"代表矩阵相加

keepdim指的是维度不变,常在sum中使用。如:

会发现,keepdim之后还是二维的

这里要注意,pytorch和numpy里max()函数的返回值是不同的
pytorch:

也就是说,max(1)代表求第一维的最大值,对于二维数组来说,就是求纵向的最大值,然后,第一个返回值是最大值所形成数组,第二个返回值是最大值所在的索引。这一个技巧在机器学习的分类任务中很常用,比如我们的分类任务是把数据分成m类,那么最终我们模型的输出是m维的,对于n个样本就是n*m,如果要判断我们的模型最终的分类结果,就是找n个样本里,每个样本m维输出的最大值索引,代表样本是这个类的可能性最大。我们可以方便地用这种方式找到最大值地索引:

其中test_out是模型输出,predict_y则是分类结果
另外一点要注意的是,numpy与pytorch不同,numpy的max()只有一个返回值:

也就是说,numpy.max()不会返回最大值所在的索引

⑸ numpy里面的mean(x==y),python

这段代码:是计算自己训练出来的模型的准确率的
那就是看实际的和预测的是不是相等(用==判断),

⑹ 关于python代码,line[:-1]的意思


line[:-1]其实就是去除了这行文本的最后一个字符(换行符)后剩下的部分。

line = "abcde"
line[:-1]
结果为:'abcd'

line = "abcde"
line[::-1]
结果为:'edcba'

(6)pythonnumpy绝对值扩展阅读:

1.先定义一个array数据

1 import numpy as np2 x=np.array([1,4,3,-1,6,9])

2.现在我们可以看看argsort()函数的具体功能是什么:

x.argsort()

输出定义为y=array([3,0,2,1,4,5])。

我们发现argsort()函数是将x中的元素从小到大排列,提取其对应的index(索引),然后输出到y。例如:x[3]=-1最小,所以y[0]=3,x[5]=9最大,所以y[5]=5。

3.由于在程序中遇到了类似于np.argsort()[num]的形式,一直看不明白,就自己去python环境自己试了下:

ps:这里的num的绝对值小于等于x中元素的个数

当num>=0时,np.argsort()[num]就可以理解为y[num];

当num<0时,np.argsort()[num]就是把数组y的元素反向输出,例如np.argsort()[-1]即输出x中最大值对应的index,np.argsort()[-2]即输出x中第二大值对应的index,依此类推。

这个是num>=0时的输出。

⑺ 图解Python中数据分析工具包:Numpy

numpy是我学习python遇到的第一个第三方工具包,它可以让我们快速上手数据分析。numpy提供了向量和矩阵计算和处理的大部分接口。目前很多python的基础工具包都是基于numpy开发而来,比如 scikit-learn, SciPy, pandas, 还有 tensorflow。 numpy可以处理表格、图像、文本等数据,极大地方便我们处理和分析数据。本文主要内容来自于Jay Alammar的一篇文章以及自己学习记录。
原文地址: https://jalammar.github.io/visual-numpy/

使用过程中,如果希望 Numpy 能创建并初始化数组的值, Numpy 提供了 ones()、zeros() 和 random.random() 等方法。只需传递希望生成的元素数量(大小)即可:

还可以进行如下操作:

一般,需要数组和单个数字之间也可以进行运算操作(即向量和标量之间的运算)。比如说 data * 1.6 ,numpy利用一个叫做广播机制(broadcasting)的概念实现了这一运算。:

我们可以通过索引对numpy数据获取任意位置数据或者对数据切片

我们可以通过numpy自带的函数对数据进行一些想要的聚合计算,比如min、max 和 sum ,还可以使用 mean 得到平均值,使用 prod 得到所有元素的乘积,使用 std 得到标准差等等。

上述操作不仅可以应用于单维度数据,还可以用于多维度数据{(矩阵)。

同样可以使用ones()、zeros() 和 random.random()创建矩阵,只要写入一个描述矩阵维数的元组即可:

numpy还可以处理更高维度的数据:

创建更高维度数据只需要在创建时,在参数中增加一个维度值即可:

根据数组中数值是否满足条件,输出为True或False.

希望得到满足条件的索引,用np.where函数实现.

根据索引得到对应位置的值.

np.where也可以接受另两个可选择的参数a和b。当条件满足时,输出a,反之输出b.

获取数组最大值和最小值的索引可以使用np.argmax和np.argmin.

1、numpy.tofile()和numpy.fromfile()
保存为二进制格式,但是不保存数组形状和数据类型, 即都压缩为一维的数组,需要自己记录数据的形状,读取的时候再reshape.

2、numpy.save() 和 numpy.load()
保存为二进制格式,保存数组形状和数据类型, 不需要进行reshape
实例:

3、numpy.savetxt()和numpy.loadtxt()

np.savetxt(fname,array,fmt=’%.18e’,delimiter=None)
Parameter解释:
array:待存入文件的数组。
fmt:写入文件的格式
实例:

⑻ python数据分析-科学计数法

用python进行数据分析时,查看数据,经常发生数据被自动显示成科学记数法的模式,或者多行多列数据只显示前后几行几列,中间都是省略号的情形。

import numpy as npnp.set_printoptions(suppress=True, threshold=np.nan)

suppress=True 取消科学记数法

threshold=np.nan 完整输出(没有省略号)

display.[max_categories, max_columns, max_colwidth, max_info_columns, max_info_rows, max_rows, max_seq_items, memory_usage, multi_sparse, notebook_repr_html, pprint_nest_depth, precision, show_dimensions]

详细介绍文档: pd.set_option

可以在pd.set_option设置display.float_format参数来以政策小数显示,比如下面设置显示到小数点后3位

pd.set_option('display.float_format', lambda x: '%.3f' % x)

set_option中还有其它一些控制设置,包括默认显示列数,行数等等

pd.set_option('display.max_columns',5, 'display.max_rows', 100)

import pandas as pdpd.set_option('display.max_columns', 10000, 'display.max_rows', 10000)

display.max_columns 显示最大列数

display.max_rows 显示最大行数

1、pd.set_option(‘expand_frame_repr’, False)

True就是可以换行显示。设置成False的时候不允许换行

2、pd.set_option(‘display.max_rows’, 10)

pd.set_option(‘display.max_columns’, 10)

显示的最大行数和列数,如果超额就显示省略号,这个指的是多少个dataFrame的列。如果比较多又不允许换行,就会显得很乱。

3、pd.set_option(‘precision’, 5)

显示小数点后的位数

4、pd.set_option(‘large_repr’, A)

truncate表示截断,info表示查看信息,一般选truncate

5、pd.set_option(‘max_colwidth’, 5)

列长度

6、pd.set_option(‘chop_threshold’, 0.5)

绝对值小于0.5的显示0.0

7、pd.set_option(‘colheader_justify’, ‘left’)

显示居中还是左边,

8、pd.set_option(‘display.width’, 200)

横向最多显示多少个字符, 一般80不适合横向的屏幕,平时多用200.

np.set_printoptions(precision=None, threshold=None, edgeitems=None, linewidth=None, suppress=None, nanstr=None, infstr=None, formatter=None)

参数:

precision 设置浮点数的精度 (默认值:8)

threshold 设置显示的数目(超出部分省略号显示, np.nan是完全输出,默认值:1000)

edgeitems 设置显示前几个,后几个 (默认值:3)

suppress 设置是否科学记数法显示 (默认值:False)

示例如下:

import numpy as npnp.set_printoptions(precision=4, threshold=8, edgeitems=4, linewidth=75, suppress=True, nanstr='nan', infstr='inf')print("precision=4, 浮点数精确小数点后4位: ", np.array([1.23446789]))print("threshold=8, edgeitems=4, 显示8个,前4后4: ", np.arange(10))np.set_printoptions(formatter={'all': lambda x :'int:'+str(-x)})print("formatter, 格式化输出: ", np.arange(5))

输出如下:

[图片上传失败...(image-15f596-1587702700460)]

注意:precision自动四舍五入

详细介绍文档: np.set_printoptions

pd.set_option

pd.set_option(pat, value)

⑼ Python基础 numpy中的常见函数有哪些

有些Python小白对numpy中的常见函数不太了解,今天小编就整理出来分享给大家。

Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数。

数组常用函数
1.where()按条件返回数组的索引值
2.take(a,index)从数组a中按照索引index取值
3.linspace(a,b,N)返回一个在(a,b)范围内均匀分布的数组,元素个数为N个
4.a.fill()将数组的所有元素以指定的值填充
5.diff(a)返回数组a相邻元素的差值构成的数组
6.sign(a)返回数组a的每个元素的正负符号
7.piecewise(a,[condlist],[funclist])数组a根据布尔型条件condlist返回对应元素结果
8.a.argmax(),a.argmin()返回a最大、最小元素的索引

改变数组维度
a.ravel(),a.flatten():将数组a展平成一维数组
a.shape=(m,n),a.reshape(m,n):将数组a转换成m*n维数组
a.transpose,a.T转置数组a

数组组合
1.hstack((a,b)),concatenate((a,b),axis=1)将数组a,b沿水平方向组合
2.vstack((a,b)),concatenate((a,b),axis=0)将数组a,b沿竖直方向组合
3.row_stack((a,b))将数组a,b按行方向组合
4.column_stack((a,b))将数组a,b按列方向组合

数组分割
1.split(a,n,axis=0),vsplit(a,n)将数组a沿垂直方向分割成n个数组
2.split(a,n,axis=1),hsplit(a,n)将数组a沿水平方向分割成n个数组

数组修剪和压缩
1.a.clip(m,n)设置数组a的范围为(m,n),数组中大于n的元素设定为n,小于m的元素设定为m
2.a.compress()返回根据给定条件筛选后的数组

数组属性
1.a.dtype数组a的数据类型
2.a.shape数组a的维度
3.a.ndim数组a的维数
4.a.size数组a所含元素的总个数
5.a.itemsize数组a的元素在内存中所占的字节数
6.a.nbytes整个数组a所占的内存空间7.a.astype(int)转换a数组的类型为int型

数组计算
1.average(a,weights=v)对数组a以权重v进行加权平均
2.mean(a),max(a),min(a),middle(a),var(a),std(a)数组a的均值、最大值、最小值、中位数、方差、标准差
3.a.prod()数组a的所有元素的乘积
4.a.cumprod()数组a的元素的累积乘积
5.cov(a,b),corrcoef(a,b)数组a和b的协方差、相关系数
6.a.diagonal()查看矩阵a对角线上的元素7.a.trace()计算矩阵a的迹,即对角线元素之和

以上就是numpy中的常见函数。更多Python学习推荐:PyThon学习网教学中心。

⑽ Python—Numpy库的用法

NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。

NumPy 支持比 Python 更多种类的数值类型。 下表显示了 NumPy 中定义的不同标量数据类型。

[('age', 'i1')]

[10 20 30]

[('abc', 21, 50.0), ('xyz', 18, 75.0)]

每个内建类型都有一个唯一定义它的字符代码:

[[1, 2] [3, 4] [5, 6]]

[[[ 0, 1, 2] [ 3, 4, 5] [ 6, 7, 8] [ 9, 10, 11]] [[12, 13, 14] [15, 16, 17] [18, 19, 20] [21, 22, 23]]]

[1 2 3]

[1 2 3]

[(1, 2, 3) (4, 5)]

原始数组是: [[ 0 5 10 15] [20 25 30 35] [40 45 50 55]]

修改后的数组是: 0 5 10 15 20 25 30 35 40 45 50 55

原始数组是: [[ 0 5 10 15] [20 25 30 35] [40 45 50 55]]

原始数组的转置是: [[ 0 20 40] [ 5 25 45] [10 30 50] [15 35 55]]

修改后的数组是: 0 5 10 15 20 25 30 35 40 45 50 55

C风格是横着顺序

F风格是竖着的顺序

原始数组是: [[ 0 5 10 15] [20 25 30 35] [40 45 50 55]]

修改后的数组是: [[ 0 10 20 30] [ 40 50 60 70] [ 80 90 100 110]]

第一个数组: [[ 0 5 10 15] [20 25 30 35] [40 45 50 55]]

第二个数组: [1 2 3 4]

修改后的数组是: 0:1 5:2 10:3 15:4 20:1 25:2 30:3 35:4 40:1 45:2 50:3 55:4

原始数组: [[0 1 2 3] [4 5 6 7]]

调用 flat 函数之后: 5

原数组: [[0 1 2 3] [4 5 6 7]]

展开的数组:默认是A [0 1 2 3 4 5 6 7]

以 F 风格顺序展开的数组: [0 4 1 5 2 6 3 7]

原数组: [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]]

转置数组: [[ 0 4 8] [ 1 5 9] [ 2 6 10] [ 3 7 11]]

阅读全文

与pythonnumpy绝对值相关的资料

热点内容
php和大数据哪个好 浏览:928
未来最值得投资的加密货币 浏览:526
ascii码是编译的时候用吗 浏览:779
压缩机感应包可以通用吗 浏览:410
方舟服务器怎么发布到搜索列表 浏览:270
xml防反编译 浏览:239
数据传输加密系统技术方案 浏览:842
程序员没有准备去面试 浏览:4
51单片机usb鼠标 浏览:879
qq服务器的ip地址查询 浏览:112
java仿qq聊天 浏览:400
解压的ipa重新打包 浏览:142
程序员那么可爱vip版 浏览:239
程序员怎么升职 浏览:243
图形化命令按钮vb 浏览:987
vcu盘加密怎么设置 浏览:415
如何加密备份微信聊天记录 浏览:529
安卓手机如何模拟键盘 浏览:932
查看dns地址命令 浏览:769
android录屏工具 浏览:842