问题:

  为什么第一次输出矩阵形式的数据,第二次输出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'}, optional
Specify the memory layout of the array. order参数用于:指定数组的内存布局。

  order的作用体现在哪里?

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

答案:

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

  C_CONTIGUOUS : True        c_contiguous(连续的)
F_CONTIGUOUS : False        f_contiguous
OWNDATA : True           own data
WRITEABLE : True          writeable
ALIGNED : True           aligned(对齐)
WRITEBACKIFCOPY : False     write back if copy
UPDATEIFCOPY : False       update if copy

sin():

Parameters
----------
x : array_like
Angle, 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 : False
F_CONTIGUOUS : True
OWNDATA : False
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False 0, 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' 意味着,(顺序要)尽可能靠近内存中出现的的数组的元素顺序。   


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

NumPy的思考……的更多相关文章

  1. numpy库:常用基本

    numpy 本文主要列出numpy模块常用方法 大部分内容来源于网络,而后经过自己的一点思考和总结,如果有侵权,请联系我 我是一名初学者,有哪些地方有错误请留言,我会及时更改的 创建矩阵(采用ndar ...

  2. numpy.trace对于三维以上array的解析

    numpy.trace是求shape的对角线上的元素的和,具体看 https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.t ...

  3. [转]numpy 100道练习题

    100 numpy exercise 翻译:YingJoy 网址: https://www.yingjoy.cn/ 来源:https://github.com/rougier/numpy-100 Nu ...

  4. Python笔记 #06# NumPy Basis & Subsetting NumPy Arrays

    原始的 Python list 虽然很好用,但是不具备能够“整体”进行数学运算的性质,并且速度也不够快(按照视频上的说法),而 Numpy.array 恰好可以弥补这些缺陷. 初步应用就是“整体数学运 ...

  5. 【CV知识学习】神经网络梯度与归一化问题总结+highway network、ResNet的思考

    这是一篇水货写的笔记,希望路过的大牛可以指出其中的错误,带蒟蒻飞啊~ 一.    梯度消失/梯度爆炸的问题 首先来说说梯度消失问题产生的原因吧,虽然是已经被各大牛说烂的东西.不如先看一个简单的网络结构 ...

  6. NNs(Neural Networks,神经网络)和Polynomial Regression(多项式回归)等价性之思考,以及深度模型可解释性原理研究与案例

    1. Main Point 0x1:行文框架 第二章:我们会分别介绍NNs神经网络和PR多项式回归各自的定义和应用场景. 第三章:讨论NNs和PR在数学公式上的等价性,NNs和PR是两个等价的理论方法 ...

  7. NN入门,手把手教你用Numpy手撕NN(2)

    这是一篇包含较少数学推导的NN入门文章 上篇文章中简单介绍了如何手撕一个NN,但其中仍有可以改进的地方,将在这篇文章中进行完善. 误差反向传播 之前的NN计算梯度是利用数值微分法,虽容易实现,但是计算 ...

  8. 使用NumPy、Numba的简单使用(二)

    本来要写NLP第三课动态规划的,日了,写到一半发现自己也不会了,理论很简单,动态规划咋回事也知道,但是实现在源码上还是有点难度,现在简单给予题目描述,小伙伴也可以来思考一下,例题一,我们现在有1元硬币 ...

  9. 从时序异常检测(Time series anomaly detection algorithm)算法原理讨论到时序异常检测应用的思考

    1. 主要观点总结 0x1:什么场景下应用时序算法有效 历史数据可以被用来预测未来数据,对于一些周期性或者趋势性较强的时间序列领域问题,时序分解和时序预测算法可以发挥较好的作用,例如: 四季与天气的关 ...

随机推荐

  1. Elasticsearch 创建以及修改索引结构

    从问题出发,这篇内容可以解决以下几个问题: 一:如何开启关闭Es索引(数据库)? 二:如何创建索引(数据库)结构? 三:如何向已有索引(数据库)中添加类型(表)结构? 四:如何向已有类型(表)中添加新 ...

  2. Django练习——图书管理系统

    Django图书管理系统 创建一个项目 1. django-admin startproject 图书管理 2. cmd 命令终端下创建一个app python manage.py startapp ...

  3. pgsql事务与并发控制

    事务与并发控制 事务的基本的概念和性质 ACID: 原子性:一个事务要么全部执行,要么全部不执行 一致性:执行事务的时候,数据库从一个一致的状态变更到另一个状态 隔离性: 确保在并发执行的时候,每个事 ...

  4. c# 获取端口的连接数,网站的连接数

    端口连接数: public static int PortTcpConnection(int port) { IPGlobalProperties properti = IPGlobalPropert ...

  5. MySQL 创建、删除、显示数据库、数据表

    1 创建.删除.显示数据库 -- 创建数据库 create database student_db character set utf8 collate utf8_general_ci; -- 删除数 ...

  6. LFYZ-OJ ID: 1024 火车站

    火车过站 问题描述 火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上.下车,但上.下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人.从 ...

  7. [数分提高]2014-2015-2第6教学周第1次课讲义 3.3 Taylor 公式

    1. (Taylor 公式). 设 $f^{(n)}$ 在 $[a,b]$ 上连续, $f^{(n+1)}$ 在 $(a,b)$ 内存在, 试证: $ \forall\ x,x_0\in [a,b], ...

  8. pyqt5-按钮基类-QAbstractButton

    QAbstractButton  是抽象类 from PyQt5.QtWidgets import QApplication, QWidget,QAbstractButton import sys f ...

  9. AB PLC分类

    AB PLC产品更新速度还是挺快的,以前很多产品都停产了,所以分类也跟着调整,就目前而言: 一.主要类型 AB PLC按类型,主要分为三大类: • 小型:MicroLogix控制器 • 中型:Comp ...

  10. JSON 之 SuperObject(11): TSuperTableString、TSuperAvlEntry

    JSON 之 SuperObject(11): TSuperTableString.TSuperAvlEntry - 万一 - 博客园http://www.cnblogs.com/del/archiv ...