Guest User

Untitled

a guest
Aug 19th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.53 KB | None | 0 0
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "code",
  5. "execution_count": 2,
  6. "metadata": {
  7. "collapsed": true
  8. },
  9. "outputs": [],
  10. "source": [
  11. "compose = lambda *fns: reduce(lambda f, g: lambda *args, **kwargs: f(g(*args, **kwargs)), fns)"
  12. ]
  13. },
  14. {
  15. "cell_type": "code",
  16. "execution_count": 5,
  17. "metadata": {
  18. "collapsed": true
  19. },
  20. "outputs": [],
  21. "source": [
  22. "def f(x):\n",
  23. " return x + 2"
  24. ]
  25. },
  26. {
  27. "cell_type": "code",
  28. "execution_count": 4,
  29. "metadata": {
  30. "collapsed": true
  31. },
  32. "outputs": [],
  33. "source": [
  34. "def g(x):\n",
  35. " return 3*x"
  36. ]
  37. },
  38. {
  39. "cell_type": "code",
  40. "execution_count": 6,
  41. "metadata": {
  42. "collapsed": false
  43. },
  44. "outputs": [
  45. {
  46. "data": {
  47. "text/plain": [
  48. "14"
  49. ]
  50. },
  51. "execution_count": 6,
  52. "metadata": {},
  53. "output_type": "execute_result"
  54. }
  55. ],
  56. "source": [
  57. "compose(f, g)(4)"
  58. ]
  59. },
  60. {
  61. "cell_type": "code",
  62. "execution_count": 7,
  63. "metadata": {
  64. "collapsed": true
  65. },
  66. "outputs": [],
  67. "source": [
  68. "import numpy as np"
  69. ]
  70. },
  71. {
  72. "cell_type": "code",
  73. "execution_count": 15,
  74. "metadata": {
  75. "collapsed": false
  76. },
  77. "outputs": [],
  78. "source": [
  79. "a = np.random.randint(10, size=(3, 6))\n",
  80. "b = np.random.randint(10, size=(3, 6))"
  81. ]
  82. },
  83. {
  84. "cell_type": "code",
  85. "execution_count": 16,
  86. "metadata": {
  87. "collapsed": false
  88. },
  89. "outputs": [
  90. {
  91. "data": {
  92. "text/plain": [
  93. "array([[8, 3, 9, 8, 3, 3],\n",
  94. " [1, 5, 8, 0, 1, 5],\n",
  95. " [9, 9, 2, 4, 8, 8]])"
  96. ]
  97. },
  98. "execution_count": 16,
  99. "metadata": {},
  100. "output_type": "execute_result"
  101. }
  102. ],
  103. "source": [
  104. "a"
  105. ]
  106. },
  107. {
  108. "cell_type": "code",
  109. "execution_count": 17,
  110. "metadata": {
  111. "collapsed": false
  112. },
  113. "outputs": [
  114. {
  115. "data": {
  116. "text/plain": [
  117. "array([[5, 9, 3, 6, 6, 4],\n",
  118. " [0, 8, 8, 7, 2, 0],\n",
  119. " [2, 0, 3, 4, 5, 2]])"
  120. ]
  121. },
  122. "execution_count": 17,
  123. "metadata": {},
  124. "output_type": "execute_result"
  125. }
  126. ],
  127. "source": [
  128. "b"
  129. ]
  130. },
  131. {
  132. "cell_type": "code",
  133. "execution_count": 19,
  134. "metadata": {
  135. "collapsed": false
  136. },
  137. "outputs": [
  138. {
  139. "ename": "ValueError",
  140. "evalue": "shapes (3,6) and (3,6) not aligned: 6 (dim 1) != 3 (dim 0)",
  141. "output_type": "error",
  142. "traceback": [
  143. "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
  144. "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
  145. "\u001b[0;32m<ipython-input-19-579c274cec9b>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
  146. "\u001b[0;31mValueError\u001b[0m: shapes (3,6) and (3,6) not aligned: 6 (dim 1) != 3 (dim 0)"
  147. ]
  148. }
  149. ],
  150. "source": [
  151. "np.dot(a, b)"
  152. ]
  153. },
  154. {
  155. "cell_type": "code",
  156. "execution_count": 27,
  157. "metadata": {
  158. "collapsed": false
  159. },
  160. "outputs": [],
  161. "source": [
  162. "columnwise_dot = lambda a, b: np.sum(a*b, axis=0)"
  163. ]
  164. },
  165. {
  166. "cell_type": "code",
  167. "execution_count": 23,
  168. "metadata": {
  169. "collapsed": false
  170. },
  171. "outputs": [
  172. {
  173. "data": {
  174. "text/plain": [
  175. "array([[4, 6, 0, 3, 3, 6],\n",
  176. " [6, 6, 5, 3, 3, 3],\n",
  177. " [0, 7, 2, 9, 1, 8],\n",
  178. " [0, 8, 4, 5, 2, 4],\n",
  179. " [1, 6, 1, 4, 8, 3],\n",
  180. " [5, 6, 0, 3, 1, 8]])"
  181. ]
  182. },
  183. "execution_count": 23,
  184. "metadata": {},
  185. "output_type": "execute_result"
  186. }
  187. ],
  188. "source": [
  189. "a = np.random.randint(10, size=(6, 6))\n",
  190. "a"
  191. ]
  192. },
  193. {
  194. "cell_type": "code",
  195. "execution_count": 25,
  196. "metadata": {
  197. "collapsed": false
  198. },
  199. "outputs": [],
  200. "source": [
  201. "trace = lambda a: np.sum(np.diag(a))"
  202. ]
  203. },
  204. {
  205. "cell_type": "code",
  206. "execution_count": 26,
  207. "metadata": {
  208. "collapsed": false
  209. },
  210. "outputs": [
  211. {
  212. "data": {
  213. "text/plain": [
  214. "33"
  215. ]
  216. },
  217. "execution_count": 26,
  218. "metadata": {},
  219. "output_type": "execute_result"
  220. }
  221. ],
  222. "source": [
  223. "trace(a)"
  224. ]
  225. },
  226. {
  227. "cell_type": "code",
  228. "execution_count": 28,
  229. "metadata": {
  230. "collapsed": true
  231. },
  232. "outputs": [],
  233. "source": [
  234. "a = np.random.randint(10, size=(6, 6))\n",
  235. "b = np.random.randint(10, size=(6, 6))"
  236. ]
  237. },
  238. {
  239. "cell_type": "code",
  240. "execution_count": 29,
  241. "metadata": {
  242. "collapsed": false
  243. },
  244. "outputs": [
  245. {
  246. "data": {
  247. "text/plain": [
  248. "array([[3, 1, 4, 6, 3, 2],\n",
  249. " [6, 7, 6, 9, 1, 9],\n",
  250. " [3, 4, 8, 3, 0, 0],\n",
  251. " [8, 1, 9, 9, 8, 7],\n",
  252. " [1, 4, 4, 2, 2, 3],\n",
  253. " [3, 5, 0, 2, 4, 9]])"
  254. ]
  255. },
  256. "execution_count": 29,
  257. "metadata": {},
  258. "output_type": "execute_result"
  259. }
  260. ],
  261. "source": [
  262. "a"
  263. ]
  264. },
  265. {
  266. "cell_type": "code",
  267. "execution_count": 30,
  268. "metadata": {
  269. "collapsed": false
  270. },
  271. "outputs": [
  272. {
  273. "data": {
  274. "text/plain": [
  275. "array([[9, 7, 9, 4, 4, 8],\n",
  276. " [8, 7, 0, 3, 9, 9],\n",
  277. " [1, 1, 9, 3, 5, 8],\n",
  278. " [4, 0, 5, 1, 8, 7],\n",
  279. " [6, 9, 0, 4, 1, 1],\n",
  280. " [0, 0, 0, 4, 4, 7]])"
  281. ]
  282. },
  283. "execution_count": 30,
  284. "metadata": {},
  285. "output_type": "execute_result"
  286. }
  287. ],
  288. "source": [
  289. "b"
  290. ]
  291. },
  292. {
  293. "cell_type": "code",
  294. "execution_count": 32,
  295. "metadata": {
  296. "collapsed": false
  297. },
  298. "outputs": [
  299. {
  300. "data": {
  301. "text/plain": [
  302. "672"
  303. ]
  304. },
  305. "execution_count": 32,
  306. "metadata": {},
  307. "output_type": "execute_result"
  308. }
  309. ],
  310. "source": [
  311. "np.sum(columnwise_dot(a.T, b))"
  312. ]
  313. },
  314. {
  315. "cell_type": "code",
  316. "execution_count": 33,
  317. "metadata": {
  318. "collapsed": false
  319. },
  320. "outputs": [
  321. {
  322. "data": {
  323. "text/plain": [
  324. "672"
  325. ]
  326. },
  327. "execution_count": 33,
  328. "metadata": {},
  329. "output_type": "execute_result"
  330. }
  331. ],
  332. "source": [
  333. "np.trace(np.dot(a, b))"
  334. ]
  335. },
  336. {
  337. "cell_type": "code",
  338. "execution_count": 34,
  339. "metadata": {
  340. "collapsed": true
  341. },
  342. "outputs": [],
  343. "source": [
  344. "x = ('a', 'b', 'c', 'd', 'e')\n",
  345. "y = ('b', 'g', 'd', 'g')"
  346. ]
  347. },
  348. {
  349. "cell_type": "code",
  350. "execution_count": 59,
  351. "metadata": {
  352. "collapsed": true
  353. },
  354. "outputs": [],
  355. "source": [
  356. "class Tree:\n",
  357. "\n",
  358. " def __init__(self, *tups):\n",
  359. " self.d = {}\n",
  360. " for tup in tups:\n",
  361. " self.add(tup, self.d)\n",
  362. "\n",
  363. " def add(self, tup, d):\n",
  364. " if len(tup) == 1:\n",
  365. " return tup[0]\n",
  366. " \n",
  367. " if tup[0] in d:\n",
  368. " self.add(tup[1:], d[tup[0]])\n",
  369. " else:\n",
  370. " d[tup[0]] = self.add(tup[1:], {})\n",
  371. " \n",
  372. " return d\n",
  373. "\n",
  374. " def __repr__(self):\n",
  375. " return str(self.d)"
  376. ]
  377. },
  378. {
  379. "cell_type": "code",
  380. "execution_count": 57,
  381. "metadata": {
  382. "collapsed": false
  383. },
  384. "outputs": [
  385. {
  386. "data": {
  387. "text/plain": [
  388. "{'a': {'b': {'c': {'d': 'e'}}}}"
  389. ]
  390. },
  391. "execution_count": 57,
  392. "metadata": {},
  393. "output_type": "execute_result"
  394. }
  395. ],
  396. "source": [
  397. "b"
  398. ]
  399. },
  400. {
  401. "cell_type": "code",
  402. "execution_count": 60,
  403. "metadata": {
  404. "collapsed": false
  405. },
  406. "outputs": [
  407. {
  408. "data": {
  409. "text/plain": [
  410. "{'a': {'b': {'c': {'d': 'e'}, 'g': {'d': 'g'}}}}"
  411. ]
  412. },
  413. "execution_count": 60,
  414. "metadata": {},
  415. "output_type": "execute_result"
  416. }
  417. ],
  418. "source": [
  419. "Tree(x, y)"
  420. ]
  421. },
  422. {
  423. "cell_type": "code",
  424. "execution_count": null,
  425. "metadata": {
  426. "collapsed": true
  427. },
  428. "outputs": [],
  429. "source": []
  430. }
  431. ],
  432. "metadata": {
  433. "kernelspec": {
  434. "display_name": "Python 2",
  435. "language": "python",
  436. "name": "python2"
  437. },
  438. "language_info": {
  439. "codemirror_mode": {
  440. "name": "ipython",
  441. "version": 2
  442. },
  443. "file_extension": ".py",
  444. "mimetype": "text/x-python",
  445. "name": "python",
  446. "nbconvert_exporter": "python",
  447. "pygments_lexer": "ipython2",
  448. "version": "2.7.9"
  449. }
  450. },
  451. "nbformat": 4,
  452. "nbformat_minor": 0
  453. }
Add Comment
Please, Sign In to add comment