- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章numpy中的ndarray方法和属性详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推。在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量。比如说,二维数组相当于是一个一维数组,而这个一维数组中每个元素又是一个一维数组。所以这个一维数组就是NumPy中的轴(axes),而轴的数量——秩,就是数组的维数.
Numpy库中的矩阵模块为ndarray对象,有很多属性:T,data, dtype,flags,flat,imag,real,size.
itemsize,nbytes,ndim,shape,strides,ctypes,base等等.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
>>>
import
numpy as np
>>> x
=
np.array([[
1
,
2
,
3
],[
9
,
8
,
7
],[
6
,
5
,
4
]])
>>> x.T
#获得x的转置矩阵
array([[
1
,
9
,
6
],
[
2
,
8
,
5
],
[
3
,
7
,
4
]])
>>>
print
x.flags
#返回数组内部的信息
C_CONTIGUOUS :
True
F_CONTIGUOUS :
False
OWNDATA :
True
WRITEABLE :
True
ALIGNED :
True
UPDATEIFCOPY :
False
>>> x.flat[
2
:
6
]
#将数组变为1维数组,并获取其中的一部分数据
array([
3
,
9
,
8
,
7
])
>>> x.flat
=
4
; x
#将值赋给1维数组,再转化成有原有数组的大小形式
array([[
4
,
4
,
4
],
[
4
,
4
,
4
],
[
4
,
4
,
4
]])
>>> x
array([[
4
,
4
,
4
],
[
4
,
4
,
4
],
[
4
,
4
,
4
]])
|
ndarray.imag # 为复变函数中含有虚部的数组,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
>>> x
=
np.sqrt([
2
+
3j
,
5
+
0j
])
# 创建一个复数
>>> x
array([
1.67414923
+
0.89597748j
,
2.23606798
+
0.j
])
>>> x.imag
#获得复数的虚部
array([
0.89597748
,
0.
])
>>> x.real
#获得复数的实部
array([
1.67414923
,
2.23606798
])
>>> x
=
np.arange(
10
)
#随机生成一个数组,并重新命名一个空间的数组
>>> x.reshape(
2
,
5
)
array([[
0
,
1
,
2
,
3
,
4
],
[
5
,
6
,
7
,
8
,
9
]])
>>> x.size
#获得数组中元素的个数
10
>>> x.ndim
#获得数组的维数
>>> x.shape
#获得数组的(行数,列数)
(
10
,)
>>> y
=
x.reshape(
5
,
2
)
>>> y
array([[
0
,
1
],
[
2
,
3
],
[
4
,
5
],
[
6
,
7
],
[
8
,
9
]])
>>> y.base
#获得该数组基于另外一个对象数组而来,如下,y是根据x而来
array([
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
])
|
Ndarray对象的方法 。
ndarray.ptp(axis=None, out=None) : 返回数组的最大值—最小值或者某轴的最大值—最小值 。
ndarray.clip(a_min, a_max, out=None) : 小于最小值的元素赋值为最小值,大于最大值的元素变为最大值.
ndarray.all():如果所有元素都为真,那么返回真;否则返回假 。
ndarray.any():只要有一个元素为真则返回真 。
ndarray.swapaxes(axis1, axis2) : 交换两个轴的元素,如下 。
1
2
3
|
>>> z.swapaxes(
0
,
1
)
array([[
2
,
4
,
6
,
8
],
[
3
,
5
,
7
,
9
]])
|
下面为改变数组维度和大小的方法:
ndarray.reshape(shape[, order]) :返回重命名数组大小后的数组,不改变元素个数. 。
ndarray.resize(new_shape[, refcheck]) :改变数组的大小(可以改变数组中元素个数). 。
ndarray.transpose(*axes) :返回矩阵的转置矩阵 。
ndarray.swapaxes(axis1, axis2) : 交换两个轴的元素后的矩阵. 。
ndarray.flatten([order]) : 复制一个一维的array出来. 。
ndarray.ravel([order]) :返回为展平后的一维数组. 。
ndarray.squeeze([axis]) :移除长度为1的轴.
ndarray.tolist():将数组转化为列表 。
ndarray.take(indices, axis=None, out=None, mode='raise'):获得数组的指定索引的数据,如:
1
2
3
4
5
6
7
8
9
|
>>> a
=
np.arange(
12
).reshape(
3
,
4
)
>>> a
array([[
0
,
1
,
2
,
3
],
[
4
,
5
,
6
,
7
],
[
8
,
9
,
10
,
11
]])
>>> a.take([
1
,
3
],axis
=
1
)
#提取1,3列的数据
array([[
1
,
3
],
[
5
,
7
],
[
9
,
11
]])
|
numpy.put(a, ind, v, mode='raise'):用v的值替换数组a中的ind(索引)的值。Mode可以为raise/wrap/clip。Clip:如果给定的ind超过了数组的大小,那么替换最后一个元素.
1
2
3
4
5
6
7
8
9
10
11
|
numpy.repeat(a, repeats, axis
=
None
):重复数组的元素,如:
>>> x
=
np.array([[
1
,
2
],[
3
,
4
]])
>>> np.repeat(x,
2
)
array([
1
,
1
,
2
,
2
,
3
,
3
,
4
,
4
])
>>> np.repeat(x,
3
, axis
=
1
)
array([[
1
,
1
,
1
,
2
,
2
,
2
],
[
3
,
3
,
3
,
4
,
4
,
4
]])
>>> np.repeat(x, [
1
,
2
], axis
=
0
)
array([[
1
,
2
],
[
3
,
4
],
[
3
,
4
]])
|
numpy.tile(A, reps):根据给定的reps重复数组A,和repeat不同,repeat是重复元素,该方法是重复数组.
ndarray.var(axis=None, dtype=None, out=None, ddof=0):返回数组的方差,沿指定的轴.
ndarray.std(axis=None, dtype=None, out=None, ddof=0):沿给定的轴返回数则的标准差 。
ndarray.prod(axis=None, dtype=None, out=None):返回指定轴的所有元素乘机 。
ndarray.cumprod(axis=None, dtype=None, out=None):返回指定轴的累积,如下:
1
2
3
4
5
6
7
8
|
>>> a
array([[
0
,
1
,
2
,
3
],
[
4
,
5
,
6
,
7
],
[
8
,
9
,
10
,
11
]])
>>> a.cumprod(axis
=
1
)
#得到竖轴的累积
array([[
0
,
0
,
0
,
0
],
[
4
,
20
,
120
,
840
],
[
8
,
72
,
720
,
7920
]])
|
ndarray.mean(axis=None, dtype=None, out=None):返回指定轴的数组元素均值 。
ndarray.cumsum(axis=None, dtype=None, out=None):返回指定轴的元素累计和。如:
1
2
3
4
5
6
7
8
|
>>> a
array([[
0
,
1
,
2
,
3
],
[
4
,
5
,
6
,
7
],
[
8
,
9
,
10
,
11
]])
>>> a.cumsum(axis
=
1
)
array([[
0
,
1
,
3
,
6
],
[
4
,
9
,
15
,
22
],
[
8
,
17
,
27
,
38
]])
|
ndarray.sum(axis=None, dtype=None, out=None):返回指定轴所有元素的和 。
ndarray.trace(offset=0, axis1=0, axis2=1, dtype=None, out=None):返回沿对角线的数组元素之和 。
ndarray.round(decimals=0, out=None):将数组中的元素按指定的精度进行四舍五入,如下:
1
2
3
4
5
6
7
8
9
10
|
>>> np.around([
0.37
,
1.64
])
array([
0.
,
2.
])
>>> np.around([
0.37
,
1.64
], decimals
=
1
)
array([
0.4
,
1.6
])
>>> np.around([.
5
,
1.5
,
2.5
,
3.5
,
4.5
])
# rounds to nearest even value
array([
0.
,
2.
,
2.
,
4.
,
4.
])
>>> np.around([
1
,
2
,
3
,
11
], decimals
=
1
)
# ndarray of ints is returned
array([
1
,
2
,
3
,
11
])
>>> np.around([
1
,
2
,
3
,
11
], decimals
=
-
1
)
array([
0
,
0
,
0
,
10
])
|
ndarray.conj():返回所有复数元素的共轭复数,如:
1
2
3
4
5
6
7
|
>>> b
=
np.array([[
1
+
2j
,
3
+
0j
],[
3
+
4j
,
7
+
5j
]])
>>> b
array([[
1.
+
2.j
,
3.
+
0.j
],
[
3.
+
4.j
,
7.
+
5.j
]])
>>> b.conj()
array([[
1.
-
2.j
,
3.
-
0.j
],
[
3.
-
4.j
,
7.
-
5.j
]])
|
ndarray.argmin(axis=None, out=None):返回指定轴最小元素的索引.
ndarray.min(axis=None, out=None):返回指定轴的最小值 。
ndarray.argmax(axis=None, out=None):返回指定轴的最大元素索引值 。
ndarray.diagonal(offset=0, axis1=0, axis2=1):返回对角线的所有元素.
ndarray.compress(condition, axis=None, out=None):返回指定轴上条件下的切片.
ndarray.nonzero():返回非零元素的索引 。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://www.cnblogs.com/bonelee/p/7253966.html 。
最后此篇关于numpy中的ndarray方法和属性详解的文章就讲到这里了,如果你想了解更多关于numpy中的ndarray方法和属性详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
在这个例子中,我有一个一维 ndarray 列表,长度为 9,列表有 9 个元素,每个元素有 shape=(2048,) ,所以完全9 * (2048,) , 我得到这些 ndarray来自 mxne
Python/NumPy 中的三种“全部”方法有什么区别?性能差异的原因是什么? ndarray.all() 是否总是三者中最快的? 这是我运行的计时测试: In [59]: a = np.full(
我似乎在 this 中遇到了 XY 问题关于如何判断数组是否共享相同内存的问题。我检查的方式是错误的,我不知道为什么。 举几个例子 test = np.ones((3,3)) test2 = np.a
我在使用 mxnet 进行基本 IO 方面遇到问题。我正在尝试使用 mxnet.io.NDArrayIter 读取内存数据集以在 mxnet 中进行训练。我有下面的代码(为了简洁而精简),它预处理代码
首先,这不是作业问题;而是作业问题。它是与我的工作相关的实际问题的抽象。我真的很感谢所有的意见! 我需要运行类似于下面的计算,按顺序运行数万次,它的计算时间显着影响我的模拟的总持续时间: 在这个抽象中
这个问题在这里已经有了答案: Index multidimensional array with index array (1 个回答) 关闭 2 年前。 我想根据一些坐标从 src ndarray
因此 numpy ndarray 非常方便,因为您只需为任何一维函数 f 和任何 ndarray A 输入 f(A) 即可,它将按元素应用 f。有人告诉我,这也是将函数应用于 ndarray 并避免
我有一个 ndarray 字符串。我想将它转换回 ndarray。我尝试了 newval = np.fromstring(val, dtype=float) 。但它给出了ValueError:字符串大
我正在 python/numpy 中做一些机器学习工作,其中我想用一维 ndarray 索引一个二维 ndarray,这样我就可以得到一个带有索引值的一维数组。 我让它与一些丑陋的代码一起工作,我想知
我想根据某些维度的索引位置数组提取 numpy ndarray 的一部分。让我用一个例子来说明这一点 示例数据 dummy = np.random.rand(5,2,100) X = np.array
这个问题在这里已经有了答案: Find the row indexes of several values in a numpy array (8 个答案) 关闭 2 年前。 我有 a = np.a
我想提取 numpy.ndarray 的第一个轴成为numpy.ndarray的列表. 例如,arr_A包含形状为 (3, 100, 200) 的 numpy ndarray,它将转换为形状为 (10
我一直在尝试用 ndarrays 的 numpy ndarray 转换数组数组。 这是我的数据类型: dt = 'i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,f8,i
我目前正在研究一种可以拆分 numpy.ndarray 的方法进入给定数量的子阵列,只要该数量小于窗口移动的轴。 示例: 给定一个形状为 (15, 40, 3) 的 numpy.ndarray 我想分
我用 arcpy 模块创建了一个 NumPy 结构化数组(称为 arr): arr = arcpy.da.FeatureClassToNumPyArray('MPtest','SHAPE@XYZ',e
是否可以将一个 numpy 数组的特定行的引用存储在另一个 numpy 数组中? 我有一个二维节点数组,例如 nodes = np.array([[1, 2], [2, 3], [3, 4], [4,
我有两个长度相同的 pandas 系列,如下所示: S1 = 0 -0.483415 1 -0.514082 2 -0.515724 3 -0.519375 4
当使用 numpy 时,假设我有一个任意的、以前创建的名为 my_ndarray 的 ndarray。如果可能的话,我希望能够执行以下操作...... my_bytes = my_ndarray.to
我在尝试使用 numpy 打乱多维数组时遇到问题。可以使用以下代码重现该问题: import numpy as np s=(300000, 3000) n=s[0] print ("Allocate"
当您调用 DataFrame.to_numpy() 时,pandas 将找到可以容纳 DataFrame 中所有数据类型的 NumPy 数据类型。但是如何进行反向操作呢? 我有一个“numpy.nda
我是一名优秀的程序员,十分优秀!