
numpy append速度 在 コバにゃんチャンネル Youtube 的最讚貼文

Search
理论上来说concatenate的速度和内存消耗都比append要小,但我并没有实际做实验验证。 np.concatenate((C,D)) # default axis=0 array([[[0., 0.] ... ... <看更多>
#1. [原创] Python的list.append()比np.append()更快 - 编码无悔 ...
先创建一个Python list,append完数据之后再把这个list转成NumPy array。 ... 的list则对应的可能是不连续的内存区域,append起来速度就快得多。
#2. 用記憶體管理講解為何python 的list 那麼慢 - Medium
大家都說Python 在處理資料的速度慢很多,當然就有大神發現在極度方便的Python 需要一個套件可以加快他的速度,此時numpy 就出來的,裡面有一個非常重要的觀念 ...
#3. 在Numpy数组上使用append很慢 - 码农家园
我用它。 append.py[cc]import numpy as nptmp = np.array([])#適当な ... Python的执行速度与代码高度相关,因此,如果您发现错误的模式,我将尝试尽 ...
#4. np.concatenate 或在cython 中制作的手动函数? - IT工具网
在这种操作中它比numpy 列表快吗?) 对不起,如果我的问题太多和复杂。我只是想在速度上获得最佳性能。
#5. python list与numpy数组效率比较 - CSDN博客
import random import numpy as np import time import sys # import ... s if name == 'list': list_time.append(duration) elif name == 'array': ...
#6. python-为什么基于速度在列表上使用numpy? - CocoaChina
的确,当使用“ append”时,list比numpy好吗? 最佳答案. 要回答您的问题,是的.追加到数组是一项昂贵的操作,而列表使其相对便宜(原因请参见Internals of ...
但是Numpy (速度怪兽 ), 为什么还是这么慢? ... 这种并行运算大大加速了运算速度. ... 所以之后为了速度, 我推荐还是尽量使用`np.concatenate`.
因此, ravel() 函式被認為速度更快,佔用的記憶體更少。 以下程式碼顯示了這些函式的用法。 Python. pythonCopy ...
#9. Python中Numpy.append的用法解析- 云+社区 - 腾讯云
本篇是对Pylab的小试牛刀,也是对许多其他主题的过渡——包括《编码速度估计的长时间等待的后果》。 Python ...
#10. Python初學總整理第9講:Numpy函式庫 - 快樂學程式
在Python中,我們也有list來存放清單,但其實處理速度很慢,Numpy處理陣列的 ... 利用concatenate(陣列,陣列,軸)可以把兩個或多個陣列放在同一個陣列 ...
#11. Lecture 8 進階多物件控制(array)
「array陣列」是Python的另一個套件NumPy(Numerical Python)中所內含資料型態, ... 在記憶體上的儲存位置會完全排在一起,因此array的存取速度會比list快非常多!
#12. Lecture 8 進階多物件控制(array)
「array陣列」是Python的另一個套件NumPy(Numerical Python)中所內含資料型態, ... 在記憶體上的儲存位置會完全排在一起,因此array的存取速度會比list快非常多!
#13. 如何在NumPy数组中添加额外的列 - QA Stack
我认为,更简单,更快速的启动方法是执行以下操作: import numpy as np N = 10 a ... 这比@JoshAdel的答案更直接,但是在处理大型数据集时,它的速度较慢。
#14. How Fast Numpy Really is and Why? - Towards Data Science
When we concatenate 2 Numpy arrays, one new resulting array is initialized. So the concatenating operation is relatively faster in the python ...
#15. 多次元配列でのnp.appendをlist appendを用いて高速化したい
listに入れておいて、最後にまとめて np.concatenate を呼ぶ。これで実用的な速度になるでしょう。 追記. # 空の配列を先に定義しておく data ...
#16. 1,Python常用库之一:Numpy - 傻白甜++ - 博客园
在对大型数组执行操作时,Numpy的速度比Python列表的速度. ... 矩阵添加:Numpy.append(参数1:array,数组;参数2: elements,添加元素;参数3: ...
#17. 机器学习系列(四)——Numpy中的矩阵运算与索引 - 简书
时间效率测试%%time A=[] for e in L: A.append(2*e) out:CPU times: ... numpy将数组看成向量或矩阵,而且加入了非常好的优化,运行速度非常非常快, ...
#18. 一起幫忙解決難題,拯救IT 人的一天
Numpy 是參考CPyton創造出來的,因為Python在執行數學運算上,直譯器的程式碼會比編譯器來的慢許多,因此特別為NumPy引入多維矩陣與陣列的數學函式,使的它的速度可以跟編譯 ...
#19. 指導教學:新增表示式 - IBM
在本指導教學中,您將撰寫表示式以根據速度和移動時間來計算機器人移動的距離。 ... import datetime as dt import numpy as np import pandas as pd from collections ...
#20. numpy拼合数组方法大全
理论上来说concatenate的速度和内存消耗都比append要小,但我并没有实际做实验验证。 np.concatenate((C,D)) # default axis=0 array([[[0., 0.] ...
#21. Numpyの配列でappendを使うと遅くなる - Qiita
Pythonの実行速度はかなりコードに依存しているので、よくないパターンを見つけたらできる限り紹介していきたいと思います。 Why not register and get ...
#22. numpy 数组合并concentrate速度慢 - BBSMAX
一起跟随小编过来看看吧Python中numpy数组的合并有很多方法,如- np.append() - np.concatenate() - np.stack() - np.hstack() - np.vstack() - np.dstack() 其中最泛用 ...
#23. Python numpy.transpose方法代碼示例- 純淨天空
__getitem__(words)) if normalization: unit_vector=unitvec(vectors,ax=0) # 這樣寫比原來那樣速度提升一倍 #unit_vector=np.zeros((len(vectors),len(words))) #for ...
#24. numpy数组某一行求和python_[Python技巧]如何加快循环操作 ...
前言Python 虽然写起来代码量要远少于如C++,Java,但运行速度又不如它们,因此也有了各种提升Python 速度的方法技巧,这次要介绍的是用Numba 库进行加速比较耗时的循环 ...
#25. Python NumPy | Append - YouTube
#26. 在Python中利用numpy, SciPy宣告陣列, 並記錄所需時間
語言速度比較. 在Python中利用numpy, SciPy宣告陣列, 並記錄所需時間 ... x.append( i*8e-10 ); tEnd = time.time(); print ("append method: It cost %f sec", ...
#27. FFT卷积的速度比较| 用Python 做科学计算 - wizardforcel
coding: utf-8 -*- import numpy as np import timeit def fft_convolve(a,b): n ... t1_list.append(t1*1000/count/N) t2_list.append(t2*1000/count/N) ...
#28. 有没有办法绕过Python list.append()随着列表的增长逐渐变 ...
这不是循环所固有的〜当我在循环浏览文件时打印每个新实例时,程序以恒定速度进行〜只有当我将它们附加到列表时才会变慢。 我的朋友建议在while循环之前禁用垃圾收集,然后 ...
#29. Python常用库Numpy进行矩阵运算详解 - 脚本之家
在对大型数组执行操作时,Numpy的速度比Python列表的速度快了好几百。 ... 矩阵添加:Numpy.append(参数1:array,数组;参数2: elements,添加 ...
#30. 用python实现解常微分方程组的简单示例以及用odeint ... - 台部落
下面的方程組給出洛侖茲引子在三個方向上的速度,求解運動軌跡軟件: python3.5.2 ... d.append(P) dnp = np.array(d) #位置2: P02 = [0.,1.01,0.] ...
#31. insert()、delete()函数的使用方法_读万卷书行万里路-程序员宝宝
python:numpy的数据类型及append()、insert()、delete()函数的使用方法_读万卷书 ... 的数据。numpy的底层是用C语言进行编写的,所以同样类型的函数,numpy的计算速度 ...
#32. NumPy排序,搜索和计数功能 - 编程字典
NumPy 提供了各种与分类相关的功能。这些排序功能实现了不同的排序算法,每种排序算法都以执行速度,最差情况下的性能,所需的工作空间以及算法的稳定性为特征。
#33. 怎样进行Python内置函数与numPy运算速度对比 - 亿速云
本篇文章为大家展示了怎样进行Python内置函数与numPy运算速度对比, ... a.append(random.random()) t1=time.time() sum1=sum(a) #直接用内置函数 ...
#34. 年度Python必備基礎:這些NumPy的神操作你都掌握了嗎?
NumPy 庫中的內建函數使用了SIMD指令。例如下面所示在Python中使用向量化要比使用循環計算速度快得多。 import time. import numpy as np. x1 ...
#35. insert()、delete()函数的使用方法_读万卷书行万里路-程序员资料
python:numpy的数据类型及append()、insert()、delete()函数的使用方法_读万卷书 ... 的数据。numpy的底层是用C语言进行编写的,所以同样类型的函数,numpy的计算速度 ...
#36. Python常用庫Numpy | IT人
在對大型陣列執行操作時,Numpy的速度比Python列表的速度快了好幾百。 ... 矩陣新增:Numpy.append(引數1:array,陣列;引數2: elements,新增 ...
#37. 干货!机器学习中,如何优化数据性能 - 人民日报
不过由于其解释型语言的特性,在运行速度上往往和传统编译型语言有较大差距。 ... 这是非常不好的习惯,numpy或pandas在实现append的时候,实际上对内存块进行了拷贝—— ...
#38. Python:一篇文章掌握Numpy的基本用法 - ITPub博客
Numpy 数组能够运用向量化运算来处理整个数组,速度较快;而Python的列表则通常需要借助循环语句遍历列表,运行 ... 6. c.append(a[i]**2 + b[i]**2).
#39. 【PYTHON】numpy陣列大小與串聯速度 - 程式人生
我將資料連線到一個numpy陣列,如下所示: xdata_test = np.concatenate((xdata_test,additional_X)) 這是一千次。陣列具有dtype float32 ,其大小 ...
#40. 乾貨!機器學習中,如何最佳化資料效能 - 最鐵資訊
不過由於其解釋型語言的特性,在執行速度上往往和傳統編譯型語言有較大 ... 這是非常不好的習慣,numpy或pandas在實現append的時候,實際上對記憶體 ...
#41. Python3快速入门(十二)——NumPy - 51CTO博客
Numpy 是一个运行速度非常快的数学库,内部解除了CPython的GIL(全局解释 ... 9, 9, 9]], axis=0) print(result) # 追加一列result = numpy.append(a, ...
#42. numpy矩陣簡介
import numpy as np a = np.array([1, 2, 3]) # 產生一維陣列print(type(a)) # Prints ... 它的用法,包括列表長度(len(a))和附加列表元素(c.append())的各種指令。
#43. 如何加快numpy.append | 码农俱乐部- Golang中国
A = np.zeros(0) for i in range(1000): np.append(A, getArray(i)) ... 您可以解决此问题,并通过对数分解合并问题来加快处理速度。
#44. 为什么numpy.power比lining慢60倍? - 问答
例如,当x是随机的100x100数组时 x = numpy.power(x,3) 大约比. ... 大小的加速曲线图显示,阵列大小在10k左右时是一个最佳点,其他大小的阵列的加速速度为5-10倍。
#45. 配列末尾へ要素を追加するNumPyのappendの使い方 - DeepAge
速度 比較. NumPyのndarrayは多次元配列を扱うことを目的としたクラスで、事前にメモリ確保しています。 np.
#46. Numpy的介紹與基本使用方法 - 古詩詞庫
NumPy 是Python中的一個運算速度非常快的一個數學庫,它非常重視陣列。 ... v in values: result.append(v * v) return result data = range(10000) ...
#47. np.append,np.concatenate或cython中的手动功能? - Thinbug
另一个模型是分配一个足够大的数组来开始,例如: res = np.zeros((n,2)) ,并在 res[i,:] = new_value 处插入值。速度与列表追加方法大致相同。此模型 ...
#48. 如果不懂numpy,請別說自己是python 程式設計師
有了numpy,python 程式設計師才有可能寫出媲美C 語言執行速度的程式碼。 ... 其實,numpy 仍然保留了append() 方法,只不過這個方法不再是numpy 陣列的方法,而是是 ...
#49. 附加numpy.array列出python会覆盖以前的元素 - 小空笔记
首先,我初始化位置和速度,并根据给定的电位从位置导出加速度。 ... if r actually changes g = acc(*r) v += 0.5 * g * dt posdata.append(r).
#50. Python內建函式與numPy運算速度對比- IT閱讀
Python自己帶了幾個函式,主要是sum,max,min,同時numPy中也有幾個類似 ... a.append(random.random()) t1=time.time() sum1=sum(a) #直接用內建函式 ...
#51. 如何將數據處理速度提升1000+倍- CodingNote.cc
np.vectorize 可以將python函數轉換為 numpy ufunc ,可以處理向量化方法。可以向量化函數,而不需要應用到數據。 # Here is our previous function ...
#52. numpy.concatenateを使いこなすのが望ましい
速度 :Pythonの配列の末尾に要素追加-Qiita リストとnumpy.ndarrayに於ける要素の追加に関…
#53. 不懂NumPy 算什麼Python 程式設計師? | CSDN 博文精選
有了NumPy,Python 程式設計師才有可能寫出媲美C 語言運行速度的代碼。 ... 其實,numpy 仍然保留了append() 方法,只不過這個方法不再是numpy 數組的 ...
#54. 索引numpy数组与python append一样慢- 堆栈内存溢出
看起来索引带有索引数组的numpy记录数组的速度非常慢。 但是,使用np.view可以执行相同的操作10-15倍。 这种差异背后有原因吗? 为什么不以更快的方式实现记录数组的索引?
#55. NumPy 筆記:陣列ndarray - 一個地球人在臺北
NumPy 是Python 的運算套件,提供陣列 (ndarray)、矩陣 (matrix)……等常用的數學工具,運算速度比Python 內建的資料格式快很多。NumPy 已經將許多常用 ...
#56. pythonのリストとnumpyのappendの速度比較 - クロの制作日記
そこで気になるのが、リストのappendとnumpyのnp.appendで速度の違いがあるのかということです。 機械学習によっては、何千回何万回とappendをする ...
#57. 合併兩個Numpy數組- PYTHON - 2021
因此,我嘗試通過以下代碼找到更快的方法: final = [np.append(i, second[0]) for i in first]. 它的工作速度比以前的循環快得多,但僅附加了第二個數組的第一個值。
#58. Numpy -以更快的速度替换hstack / vstack if-loop(append ?)
Numpy -以更快的速度替换hstack / vstack if-loop(append ?) ... 然后您可以摆脱if子句,并直接执行np。vstack。然而,当数组中有许多列(在我的真实 ...
#59. numpy.append - 程序员ITS203
Python 虽然写起来代码量要远少于如C++,Java,但运行速度又不如它们,因此也有了各种提升Python 速度的方法技巧,这次要介绍的是用Numba 库进行加速比较耗时的循环操作以及 ...
#60. 纯numpy手写KNN算法(速度较快) - Python黑洞网
record result. append(max_label). return np.array(y_pred). 不使用tqdm库:. import numpy as np. #KNN ( X_test.shape: (n_samples,n_features) ).
#61. Re: [問題] 請問如何產生N個名稱- 看板Python
N body simulation 自己也有點興趣所以試著看了一下import numpy as np ... 的座標particlev = np.zeros_like(particle) #存放每個球的速度的陣列, ...
#62. list.append()运行到后面越来越慢?,Python交流,技术交流区,鱼 ...
网上查了一下,append越到后面运行速度会变慢?有人说extend效率会高点... ,鱼C ... list.append()运行到后面越来越慢? ... 数据量大考虑用numpy.
#63. numpy append column - DJGH
Add an extra column to a numpy array: Numpy's np.append method takes three ... 做simulation, 好不容易用传说中Python 里速度最快的计算模块Numpy 的写好了, ...
#64. Python必備基礎:這些NumPy的神操作你都掌握了嗎?
本文簡單介紹NumPy模塊的兩個基本物件ndarray、ufunc,介紹ndarray ... import numpy as np a=np.array([1,2,3]) b=np.array([4,5,6]) c=np.append(a ...
#65. python中切片和拷贝的速度问题_CDA答疑社区
后来采用的是切片的方法,发现速度竟然比append 要快很多,总觉得每一步一次 ... 因为数据是存储在numpy 的ndarray 中和Python 内置的list 可能有些不 ...
#66. 爲什麼使用基於速度的numpy over list? - 優文庫 - UWENKU
參考Why NumPy instead of Python lists? tom10說: 速度:這裏有做算術在列表和NumPy的 ... array = np.append(array, i) end = time.time() print ("Using numpy: " ...
#67. python hog 級聯分類器人臉檢測,(執行速度就是龜速 - 程式前沿
本文主要級聯分類器的python實現,程式執行速度及其的慢,程式中沒有啥 ... 成新的資料集 data = np.concatenate((possample,negsample)) poslabel ...
#68. 有没有一种方法可以绕过Python的list.append(), 它随着列表的 ...
这不是典型的循环〜当我遍历文件时打印每个新实例时, 程序将以恒定的速度运行〜只有将它们添加到列表中时, ... 使用如下创建的Numpy数组时, 我遇到了这个问题:
#69. Numpy大规模矩阵运算优化加速技巧 - Ye's Blog
ravel将多维数组一维化时避免拷贝,所以速度较快。 ... numpy没有append,因为array的数据结构是块状,改变元素个数需要重新申请内存并复制,所以应当 ...
#70. Python科学计算库之Numpy
NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含: ... c.append(a[i]**2 + b[i]**2) return c %timeit pySum() 10 loops, ...
#71. Newmark-beta法的Python實現 - GetIt01
2)確定運動的初始值{u0}、{v0}和{a0}(初始位移、速度、 ... u.append(np.dot(np.linalg.inv(K_), P_)) ... 計算ti+1時刻的加速度和速度
#72. 纯numpy手写KNN算法(速度较快) - 爱代码
... 本文主要尝试优化速度,测试过比sklearn的KNN慢20%左右(fit和predict两个过程总计),瓶颈在于:训练数据跟预测数据求欧氏距离时,求差的numpy矩阵 ...
#73. Numpy concatenate很慢:任何替代方法? - 开发者知识库
[英]Numpy concatenate is slow: any alternative approach? ... 但核心事實是:python中的list.append()速度很快(攤銷:O(1)),而numpy-arrays則不然!
#74. 1,Python常用庫之一:Numpy - 碼上快樂
Numpy 支持大量的維度數組和矩陣運算,對數組運算提供了大量的數學函數庫Numpy比Python列表更具優勢,其中一個優勢便是速度。在對大型數組執行操作時 ...
#75. 浅议Python append()与NumPy append() - 掘金
最近一直在折腾Numpy的路上越走越远,发现有很多东西可以深入研究。今天就来简单介绍一下NumPy 和Python中append()函数的特点,以及append()的特性 ...
#76. [Python] 速度比較:Numpy與內建函式- 最大最小總合| Jarvus
快>慢:min(1, 2) > min([1, 2]) > np.min([1, 2]). Python雖然是非常方便的語法 但執行速度總比不上別人 必須使用很多技巧進行優化 我會慢慢和大家分享. 更多精彩文章
#77. 【负雪明烛】清晰图解+ 详细举例+ 4 种方法, 让你格局打开
... 0: res.append("Gold Medal") elif rank == 1: res.append("Silver ... Python 的科学计算库NumPy 中有的 argsort() 函数,它的含义求每个元素在 ...
#78. Python机器学习入门——科学计算库(Numpy)
从中我们看到ndarray的计算速度要快很多,节约了时间。机器学习的最大特点就是大量的数据运算,那么如果没有一个快速的解决方案,那可能现在python也在 ...
#79. Optimal way to append to numpy array - Stack Overflow
Appending to numpy arrays is very inefficient. This is because the interpreter needs to find and assign memory for the entire array at every ...
#80. 將元素插入到numpy數組的開頭和結尾 - Tidewaterschool
所以我們有 hstack 和 concatenate 作為答案。 · 1 @areuexperienceed我只是花了一些時間,所以無論數組長度如何,連接速度始終比hstack快3倍。 · 1 @ J.Corson是的,這是 ...
#81. 如何在NumPy中創建一個空數組/矩陣? - Siwib
list = [] for item in data: list.append(item). 有沒有辦法對NumPy數組或矩陣使用這種表示法? 您對有效使用NumPy的思維模式有誤。 NumPy數組存儲在連續的內存塊中。
#82. 在numpy.array中查找唯一的行
除非速度是一個真正的問題,否則這類解決方案應該優先於IMO對這個問題的複雜且票數較高的 ... ind = np.lexsort(a.T); a[np.concatenate(([True],np.any(a[ind[1:]]!
#83. 如何在NumPy中創建一個空數組/矩陣 ... - Nickfish2008
而如果這是一個列表,我會做這樣的事情: list = [] for item in data: list.append(item). 有沒有辦法對NumPy數組或矩陣使用這種表示法?
#84. 如何查找列表中元素的所有出現 - Libertychildrenbelize
... return result result.append(offset). 它比列表理解要快得多 enumerate ,用於大型列表。它也比 numpy 解如果您已經擁有該數組,否則轉換的成本將超過速度增益( ...
#85. 將NumPy數組轉儲到csv文件中
22就像魅力一樣運作,速度非常快-權衡使用額外的內存。參數 header=None, index=None 刪除標題行和索引列。 3 @DaveC:您 ...
#86. Python中更快的kNN算法| 2021
T neighbours = np.append(indexes, neighbours, axis=1) # Sort by second ... 即使列表理解並沒有真正消除for循環,但它們比這裡的顯式速度快得令人難以置信嗎?
#87. 如何在NumPy數組中添加額外的列
7這比@JoshAdel的答案更直接,但是在處理大型數據集時,它的速度較慢。我會根據可讀性的重要性在兩者之間進行選擇。 6 append 其實只是打電話 concatenate.
#88. Why is np.append so slow? #17090 - GitHub
Reproducing code example: np.append is extremely slow, why is that the case? The docs don't have anything on the performance part.
#89. Pytorch Tensor Delete Row
Using the NumPy function np. Selecting rows and columns simultaneously. Posted: (5 days ago) Concatenate Tensor Batch Pytorch Images › See more all of the best ...
#90. 如何在NumPy中創建一個空數組/矩陣 ... - Moms4more
... 意味著可以在單元格中找到隨機值,但是創建數組的速度比例如與 .zeros() ? ... 2如果由於某種原因需要定義一個空數組,但寬度固定(例如 np.concatenate() ), 您 ...
#91. Numba njit
The default numba decorator is jit. load dummy dataset. import numpy as np. ... These examples are extracted from open source projects. append(c,i) return c ...
#92. Pandas基于日期结合行- IT答乎
@jakevdp嗨jake,你有什么建议如何在> 100000行和/或群体时速度加快速度? ... import pandas as pd import numpy as np df = pd.
#93. 現場で使える!NumPyデータ処理入門 機械学習・データサイエンスで役立つ高速処理手法
... とnp.resizeなどとの違いのまとめ 080 2.2 配列末尾へ要素を追加するappend 081 2.2.1 Pythonのlistのappendメソッド 081 2.2.2 np.append 082 2.2.3 速度比較 085 ...
#94. Numba njit - Days On The Move
Mar 15, 2020 · from numba import njit import numpy as np @njit def func (n): c ... の並列化オプションについて実行速度を調査 ( Numba で並列処理ができることを ...
#95. Pip uninstall transformers - 777vegas.com
默认情况下 pip 使用的是国外的镜像,在下载的时候速度非常慢,本文我们 ... faiss-cpu!pip install -U sentence-transformers import numpy as np ...
#96. 深度学习训练营:21天实战TensorFlow+Keras+scikit-learn
... '.join(line)) cleaned_pairs.append(clean_pair) #转换成Numpy数组 cleaned_pairs ... 为了让训练的速度较快,我们使用前10000行平行语句对来训练模型, ...
#97. How to extend a NumPy array in Python - Kite
Call numpy.append(array, elements, axis) to return array extended with elements on axis . an_array = np.array([[0, 1],[2, 3]]). print(an_array).
#98. Python NumPy Append + 9 Examples
Learn about Python NumPy append with examples, NumPy append row, column, 2d array, two arrays, array to array. Python NumPy append to an ...
numpy append速度 在 Re: [問題] 請問如何產生N個名稱- 看板Python 的推薦與評價
N body simulation 自己也有點興趣所以試著看了一下
import numpy as np
#Numpy是科學計算常用的套件,運算量大時會比原生list快
particle = np.random.standard_normal((nParticles, 3))
#三維陣列, 存放 nParticles個球的x,y,z座標
#ex. nParticles = 100
#這邊是用隨機產生的座標
particlev = np.zeros_like(particle)
#存放每個球的速度的陣列,形狀跟particle一樣
#初始值為零
def nbody_np(particle, particlev): # NumPy arrays as input
'''
從初始條件開始,計算每個球受的重力
時間軸每次增加0.01,總共跑五次
'''
t0 = time.time(); nSteps = 5; dt = 0.01
particle_result = np.zeros(nParticles,3,nSteps+1)
#原本我貼的例子只告訴你花多少時間算
#這裡用particle_result記錄每個時間點的球的位置
particle_log = np.copy(particle) #從起始點開始
for step in range(1, nSteps + 1, 1):
Fp = np.zeros((nParticles, 3)) #每個球受的重力
for i in range(nParticles):
dp = particle - particle[i] #計算第i個球到每個球之間的距離
#也就是dx, dy, dz
drSquared = np.sum(dp ** 2, axis=1)
#(dx)^2 + (dy)^2 +(dz)^2
h = drSquared * np.sqrt(drSquared) #原程式錯了
#不是相加而是相乘
#數值運算有解析度問題
#這邊設定重力不能小於10^-10
#至於重力為什麼是1/(r^(3/2)),
#是假設重力常數跟所有球的質量都是1
#3/2次方的原因是來自向量方程式
drPowerN32 = 1. / np.maximum(h, 1E-10)
Fp += -(dp.T * drPowerN32).T
#最後每個球會受到所有球的重力所以要相加
particlev += dt * Fp
#球的速度在t+dt後就是原速度+dt*重力
particle_log += particlev * dt
particle_result[:,:,step] += particle_log
#球的新位置是 原位置+球的速度*dt
return particle_result
python科學運算原則上能向量化就向量化
除非是用c之類的編譯語言寫否則儘量避免for loop會比較好
向量化之後應該沒有幫每個球取名的必要吧?
至於Nbody simulation如果球不是一個質點的情況
你的運動方程式會更複雜喔,不知道高中物理現在是有沒有這麼難 XD
※ 引述《lefan (紅氣球雯雯)》之銘言:
: 謝謝Neisseria大介紹globals函數讓我解決了幫球自動取名的問題
: 但又碰上新的問題,
: 我希望在每一個迴圈中,自動把每個球的位置塞入新的list中,
: 好讓我可以每個迴圈重新計算球與球間的距離。
: 若不用迴圈我會這樣寫:
: b_new_pos_list = []
: b_new_pos_list.append(ball_0.pos)
: b_new_pos_list.append(ball_1.pos)
: b_new_pos_list.append(ball_2.pos)
: b_new_pos_list.append(ball_3.pos)
: 相同的,我想利用for loop自動把每個球的位置放入b_new_pos_list中
: 因此我嘗試這樣寫。
: b_new_pos_list=[]
: for N in range(0,4,1):
: b_new_pos_list.append(ball_N.pos)
: 但當然還是不行,因為系統沒辦法自動判斷出ball_N.pos指的就是
: ball_0~3.pos
: 再次感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 130.203.95.180
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1453395445.A.6EB.html
... <看更多>