博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python二维数组输出下三角_python,将三角函数绘制成二维数组
阅读量:6513 次
发布时间:2019-06-24

本文共 2904 字,大约阅读时间需要 9 分钟。

看起来a, b, c是常量,z是a和c之间的np.linspace。

您可以使用Boolean Indexing,SciPy cookbook/Indexing

a = 1

b = 2

c = 3

def triangle (z, a = a, b = b, c = c):

y = np.zeros(z.shape)

y[z <= a] = 0

y[z >= c] = 0

first_half = np.logical_and(a < z, z <= b)

y[first_half] = (z[first_half]-a) / (b-a)

second_half = np.logical_and(b < z, z < c)

y[second_half] = (c-z[second_half]) / (c-b)

return y

z = np.linspace(a, c, num = 51)

y = triangle(z, a, b, c)

q = np.vstack((z, y)) # shape = (2, 50) ... [[z, z, z, ...], [y, y, y, ...]]

q = q.T # shape = (50, 2) ... [[z, y], [z, y], ....]

在比较表达式中使用numpy ndarray时,结果是一个布尔数组:

>>> q = np.linspace(0, 20, num = 50)

>>> print(q)

[ 0. 0.40816327 0.81632653 1.2244898 1.63265306

2.04081633 2.44897959 2.85714286 3.26530612 3.67346939

4.08163265 4.48979592 4.89795918 5.30612245 5.71428571

6.12244898 6.53061224 6.93877551 7.34693878 7.75510204

8.16326531 8.57142857 8.97959184 9.3877551 9.79591837

10.20408163 10.6122449 11.02040816 11.42857143 11.83673469

12.24489796 12.65306122 13.06122449 13.46938776 13.87755102

14.28571429 14.69387755 15.10204082 15.51020408 15.91836735

16.32653061 16.73469388 17.14285714 17.55102041 17.95918367

18.36734694 18.7755102 19.18367347 19.59183673 20. ]

>>> print(q < 5)

[ True True True True True True True True True True True True

True False False False False False False False False False False False

False False False False False False False False False False False False

False False False False False False False False False False False False

False False]

>>> print(q > 15)

[False False False False False False False False False False False False

False False False False False False False False False False False False

False False False False False False False False False False False False

False True True True True True True True True True True True

True True]

>>> print(np.logical_and(q > 5, q < 15))

[False False False False False False False False False False False False

False True True True True True True True True True True True

True True True True True True True True True True True True

True False False False False False False False False False False False

False False]

>>>您可以使用布尔数组来选择满足条件的数组部分:

>>> q[np.logical_and(q > 7, q < 11)]

array([ 7.34693878, 7.75510204, 8.16326531, 8.57142857,

8.97959184, 9.3877551 , 9.79591837, 10.20408163, 10.6122449 ])

>>>在赋值语句中使用布尔索引时,右侧仅分配给比较为True的索引:

>>> q[np.logical_and(q > 7, q < 11)] = -1

>>> print(q)

[ 0. 0.40816327 0.81632653 1.2244898 1.63265306

2.04081633 2.44897959 2.85714286 3.26530612 3.67346939

4.08163265 4.48979592 4.89795918 5.30612245 5.71428571

6.12244898 6.53061224 6.93877551 -1. -1. -1. -1.

-1. -1. -1. -1. -1. 11.02040816

11.42857143 11.83673469 12.24489796 12.65306122 13.06122449

13.46938776 13.87755102 14.28571429 14.69387755 15.10204082

15.51020408 15.91836735 16.32653061 16.73469388 17.14285714

17.55102041 17.95918367 18.36734694 18.7755102 19.18367347

19.59183673 20. ]

>>>

转载地址:http://nvifo.baihongyu.com/

你可能感兴趣的文章
工作记录之 [ python请求url ] v s [ java请求url ]
查看>>
ES5, ES6, ES2016, ES.Next: JavaScript 的版本是怎么回事?
查看>>
VR电竞游戏在英特尔®架构上的用户体验优化
查看>>
sql_update_2017/11/1
查看>>
SASS环境搭建及HBuilder中sass预编译配置
查看>>
有关方法重载的实例(例4-10)
查看>>
[转]Letter to a Young Developer
查看>>
[转]Linux 2.6.19.x 内核编译配置选项简介
查看>>
js 数组遍历for..in弊端
查看>>
[一个经典的多线程同步问题]总结
查看>>
浪潮各机型前面板指示灯含义
查看>>
提升引理:唯一提升与同伦提升
查看>>
arcgis 加载png图片实现图片跟随地图缩放 和图片的动态播放
查看>>
JVM调优
查看>>
TCP&UDP基础
查看>>
Redis和Memcache对比及选择
查看>>
数据库like匹配的实现猜测
查看>>
架构学习笔记
查看>>
我的第一篇博客
查看>>
laydate box-sizingCSS就会变形
查看>>