问题:

  为什么第一次输出矩阵形式的数据,第二次输出list形式的数据?

详见代码:

a = np.array([[1, 2], [3, 4]])
print(a)
print('ndim :', a.ndim)

控制台输出:

[[1 2][3 4]]
ndim : 2

然而,代码修改一下:

b = np.array([[11, 12], [14, 16, 17]])
print(b)
print(type(b))

控制台输出:

[list([11, 12]) list([14, 16, 17])]
<class 'numpy.ndarray'>

答案:

  第二次输出元素 [ [11, 12], [14, 16, 17] ] 在形式上不能用矩阵形式输出,不对称。


问题:

array(p_object, dtype=None, copy=True, order='K', subok=False, ndmin=0)

order : {'K', 'A', 'C', 'F'}, optionalSpecify the memory layout of the array. order参数用于:指定数组的内存布局。

  order的作用体现在哪里?

  怎么才能看出数组的内存布局?

答案:

  ndarray.flags属性, 查看ndarray对象的内存信息

  C_CONTIGUOUS : True        c_contiguous(连续的)F_CONTIGUOUS : False        f_contiguousOWNDATA : True           own dataWRITEABLE : True          writeableALIGNED : True           aligned(对齐)WRITEBACKIFCOPY : False     write back if copyUPDATEIFCOPY : False       update if copy


sin():

Parameters----------x : array_likeAngle, in radians (:math:`2 \pi` rad equals 360 degrees).

2 \pi = 2π

360°等于2π弧度
在数学和物理中,弧度是角的量度单位.它是由国际单位制导出的单位,单位缩写是rad.(radians)

弧度定义:弧长等于圆半径的弧所对的圆心角为1弧度

根据定义,一周的弧度数为2πr/r=2π, 360°角=2π弧度,因此,1弧度约为57.3°,即57°17'44.806'',1°为π/180弧度,近似值为0.01745弧度,周角为2π弧度, 平角(即180°角)为π弧度, 直角为π/2弧度.
在具体计算中,角度以弧度给出时,通常不写弧度单位,直接写值.最典型的例子是三角函数,如sin 8π、tan (3π/2).
弧长公式:
l rad=nπr/180
在这里,n就是角度数.


np.repeat()使用技巧

c = np.array([[1, 2, 3]])
c = c.reshape(-1, 3).repeat(2, 0)
输出c:
[[1, 2, 3],[1, 2, 3]]
=====================
cc = c.reshape(-1, 3)
# -1代表不管行数,只是确定列数为3# repeat用法
d = c.reshape(-1, 3)
d.repeat(2, 0)                           可以
d.repeat(preats=2, axis=0)               可以
np.repeat(d, 2, 0)                       也可以                        


问题:

  同样是order排序,传入'C','F'不同,则打印不同?

代码:

import numpy as np
a = np.arange(0, 60, 5).reshape((3, 4))
print(a)
for x in np.nditer(a,flags=['external_loop'], order='C'):print(x, end=', ')

控制台输出:

[[ 0  5 10 15][20 25 30 35][40 45 50 55]]
[ 0  5 10 15 20 25 30 35 40 45 50 55], 

然而,代码:

import numpy as np
a = np.arange(0, 60, 5).reshape((3, 4))
print(a)
for x in np.nditer(a,flags=['external_loop'], order='F'):print(x, end=', ')

控制台输出:

[[ 0  5 10 15][20 25 30 35][40 45 50 55]]
[ 0 20 40], [ 5 25 45], [10 30 50], [15 35 55],

答案:

  迭代器遍历对应于每列,并组合为一维数组。(默认)


问题:

  a.T在nditer中迭代不应该输出

[[0 3][1 4][2 5]]

  吗?

代码:

a = np.arange(6).reshape(2, 3)
print(a)
print(a.T)
print(a.T.flags)
for x in np.nditer(a.T):print(x, end=', ')
print('\n')

控制台输出:

[[0 1 2][3 4 5]][[0 3][1 4][2 5]]C_CONTIGUOUS : FalseF_CONTIGUOUS : TrueOWNDATA : FalseWRITEABLE : TrueALIGNED : TrueWRITEBACKIFCOPY : FalseUPDATEIFCOPY : False0, 1, 2, 3, 4, 5, 

答案:

  np.nditer(..., order='K') :

    order参数默认‘K’

  源码中,as close sth. as possible : 尽可能靠近

'K' means as close to the order the array elements appear in memory as possible.

  翻译:'K' 意味着,(顺序要)尽可能靠近内存中出现的的数组的元素顺序。   


=============================================

转载于:https://www.cnblogs.com/daemonFlY/p/10029667.html

NumPy的思考……相关推荐

  1. NumPy学的还不错?来试试这20题

    来源 | 早起Python(ID: zaoqi-python) 又到了NumPy进阶修炼专题.NumPy大家应该不陌生了,看了太多的原理讲解之后,用刷题来学习是最有效的方法,本文将带来20个NumPy ...

  2. 图解NumPy,这是理解数组最形象的一份教程了

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自:深度学习初学者 作者:Jay Alammar 本文用可视化的方 ...

  3. 图解NumPy:常用函数的内在机制

    选自Medium 作者:Lev Maximov 机器之心编译 编辑:Panda 支持大量多维数组和矩阵运算的 NumPy 软件库是许多机器学习开发者和研究者的必备工具,本文将通过直观易懂的图示解析常用 ...

  4. 如何从NumPy直接创建RNN?

    木易 发自 凹非寺  量子位 报道 | 公众号 QbitAI 使用成熟的Tensorflow.PyTorch框架去实现递归神经网络(RNN),已经极大降低了技术的使用门槛. 但是,对于初学者,这还是远 ...

  5. Python从入门到精通 - 什么是NumPy (下)

    本文是 Python 系列的第四篇 Python 入门篇 (上) Python 入门篇 (下) 数组计算之 NumPy (上) 数组计算之 NumPy (下) 科学计算之 SciPy 数据结构之 Pa ...

  6. Python从入门到精通- 什么是NumPy? (上)

    0 引言 本文是 Python 系列的第三篇 Python 入门篇 (上) Python 入门篇 (下) 数组计算之 NumPy (上) 数组计算之 NumPy (下) 科学计算之 SciPy 数据结 ...

  7. Numpy中数组间运算

    Numpy中数组间运算 1 数组与数的运算     [可以直接进行运算] arr = np.array([[1, 2, 3, 2, 1, 4], [5, 6, 1, 2, 3, 1]]) arr + ...

  8. Numpy的介绍和优势

    Numpy的介绍和优势 1 Numpy介绍 Numpy(Numerical Python)是一个开源的Python科学计算库,用于快速处理任意维度的数组. Numpy支持常见的数组和矩阵操作.对于同样 ...

  9. 附录2:Numpy实例记录

    使用Numpy是为了让数组的处理更高效,Numpy高效的原因在于操作并行,比如arrayX10的广播,不会一个一个去X10,而是一组一组的并行执行,numpy的实现涉及到硬件的管理: 另外,Numpy ...

最新文章

  1. tomcat(6)生命周期
  2. 在线数值列表求和工具
  3. Android 常用语句
  4. Flink官方文档学习(三):Standalone Cluster 集群部署
  5. 拓端tecdat|R语言线性分类判别LDA和二次分类判别QDA实例
  6. pulse 去马赛克软件_Github高赞:打马赛克=形同虚设,AI看透你一切小心思
  7. Ubuntu系统上使用锐捷客户端有线连接校园网
  8. 海康威视摄像头Android直播APP开发
  9. java经典实例 源代码_100个Java经典编程实例源代码JAVA源码下载
  10. 【进阶版递归】获取指定目录下的所有后缀为.java的文件
  11. PS如何快速修改证件照片底色
  12. 各种比例尺图幅号计算excel表格
  13. 超参数(Hyperparameter)
  14. 【Python】使用torrentParser1.03对单文件torrent的分析结果
  15. linux 模拟usb键盘,在Linux下模拟键盘按键
  16. Cubieboard1 引导安装 Debian 系统
  17. JavaScript判断中英文字符
  18. paper weekly_Android Weekly:Galaxy Fold详细信息,可在17分钟内充电的4000 mAh电池等
  19. 对于学it的来说,软考的高级证书难考吗,难度大吗?
  20. 新形势下,企业如何做好数据安全治理?

热门文章

  1. BZOJ4066:简单题(K-D Tree)
  2. Shell脚本中的函数、数组
  3. Day5---D4:合规和审计管理
  4. impdp导入数据时出现BUG
  5. codewars??? Is my friend cheating?
  6. iOS - Frame 项目架构
  7. ubuntu snmp Error: unknown payload OID
  8. 我用过的一些web.xml配置
  9. System Center 2012 Process Automatic
  10. 微软对外开放更多软件技底层代码术文档