Visit Our UNIX and Linux User Community

Python: make dual vector dot-product more pythonic

Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Python: make dual vector dot-product more pythonic
# 1  
Old 11-18-2019
Python: make dual vector dot-product more pythonic

I have this dot product, calculating weighted means, and is applied to two columns in a list:
# calculate weighted values in sequence
for i in range(len(temperatures)-len(weights)):
  temperatures[i].append(sum([weights[j]*temperatures[i+j][5] for j in range(len(weights))]))
  temperatures[i].append(sum([weights[j]*temperatures[i+j][6] for j in range(len(weights))]))

The calculation is a running dot-product, ie the list of temperature samples is far larger than the list of weights, hence the correction of subtracting len(weights) at the end of the main loop.
This traverses the list of weights twice, which is inefficient and degrades performance. How could this be done in a more pythonic way?

I also have concerns about the main loop. Would this be considered more pythonic?:
# calculate weighted values in sequence
for i in range(len(temperatures)):
      # weighted calculation here
      # do nothing, because array out of bounds

Last edited by figaro; 11-18-2019 at 07:01 PM.. Reason: Emphasise the fact that the lists are not of the same length, ie the dot product calculates a running weighted mean.
# 2  
Old 11-18-2019
pythonic is more about style and opinion than anything useful for producing a result.

Some sites like stack* in fact, close these kinds of threads and place them in the category of "primarily opinion-based" and close them, as follows:

primarily opinion-based - discussions focused on diverse opinions are great, but they just don't fit our format well.

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than on facts, references, or specific expertise.
I tend to agree with this (from a technical perspective this site has never been about these types of "what is more perfect, or stylish or not" discussions - because this is mostly "opinion-based" which has little to do with day-to-day operational code). But if others want to discuss this, go for it.

See this reference:

Pythonic Code: Best Practices to Make Your Python More Readable

If anyone is interested in discussing, go for it.
These 2 Users Gave Thanks to Neo For This Post:

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Pythonic Parsing

Experts and All, Hello ! I am trying to fabricate a simple shell script in python that has taken me almost 5 hours to complete. I am using python 3.6. So, I am trying to read a file, parse the log file and trying to answer this basic question of how many GET's and how many POST's are there... (1 Reply)
Discussion started by: ManoharMa
1 Replies

2. UNIX for Beginners Questions & Answers

Which Product to Choose?

Okay, I have an Asus A8NSLI board with an Athlon 64 and I dunno, maybe 8gig Ram and Windows has crashed for the last time so I've finally had enough and I'll make it a Unix machine. I have a new 1Tera drive and I'm all set to go. Which brand of Unix/Linux can you advise me to go for? The... (3 Replies)
Discussion started by: abrogard
3 Replies

3. Hardware

Fedora 16 dual monitor - dual head - automatic monitor shutdown

Hi, I am experiencing troubles with dual monitors in fedora 16. During boot time both monitors are working, but when system starts one monitor automatically shut down. It happend out of the blue. Some time before when I updated system this happend but then I booted older kernel release and... (0 Replies)
Discussion started by: wakatana
0 Replies

4. Programming

vector c++

hello guys. i'm new to c++. i've problem using two dimensional vector. i've a project of making conway's game of life. this is the code that i have made so far. my problem is how can i give a two dimensional vector through main. glider.vec1 = vec; is not correct way to give a two... (2 Replies)
Discussion started by: nishrestha
2 Replies

5. Shell Programming and Scripting

Make python script ignore .htaccess

I just wrote a tiny script with the help of ghostdog74 to search all my files for special content phrases. After a few modifications I now made it work, but one problem is left. The files are located in public_html folder, so there might also be .htaccess files. So I ignored scanning of that... (4 Replies)
Discussion started by: medic
4 Replies

6. HP-UX

TrustedMigration product ?

I'm running HP-UX B.11.23 U ia64 I've got SOX auditors asking me if we have the TrustedMigration product. I don't know what that is and google isn't being helpful. Can you tell me what this product is (and what it is for) and how to know if my system is running it and/or prove that it is... (1 Reply)
Discussion started by: LisaS
1 Replies

7. UNIX for Dummies Questions & Answers

Backup of Product Database

HI, I know its scarey me asking this, but system is homegrown and I am just having fun, but at the same time dont want to have tooo much fun where the phrase "little knowledge is dangerous" perfectly fits my actions ;-). I have a couple of packages that are failing to be removed... #... (2 Replies)
Discussion started by: Student37
2 Replies

8. UNIX for Dummies Questions & Answers

make: WARNING- Product is not licensed.

I do beg for my bad english ofr advance (french..) I've a problem with unix sco openserver 5 enterprise system I can't do any make at all! when i do it, i've this message : make: WARNING- Product is not licensed. however, i've entered the license number, code and data information... ... (3 Replies)
Discussion started by: joedelabush
3 Replies

Featured Tech Videos